selenium自動化測試入門 python unittest單元測試框架

unittest又名PyUnit, Python單元測試框架(The Python unit testing framework),簡稱為PyUnit。自從 Python 2.1 版本後,PyUnit成為 Python標準庫的一部分。

為什麼需要使用unittest單元測試框架?

當我們寫的用例越來越多時,我們就需要考慮用例編寫的規範、組織與管理,以便於後期的維護,而python-unittest正是這樣一款工具。我們這裡用一個簡單示例來展示用unittest腳本是什麼樣子的。

創建計算器類calculator

# Calculator.pynclass calculator(object):n def __init__(self, a, b):n self.a = an self.b = bnn def add(self):n return (self.a + self.b)nn def minus(self):n return (self.a - self.b)nn def multip(self):n return (self.a * self.b)nn def divide(self):n return (self.a / self.b)n

創建一個簡單的單元測試用例

import unittest # 導入unittest 包nfrom unittest_doc.com.Calculator.Calculator import calculator # 引入需要測試的包nn# 所有用例需繼承TestCase類或者其子類nclass simple_test(unittest.TestCase):n def setUp(self):n print(@@@初始化test_simple@@@)n self.a = calculator(1, 2)nn def test_add(self):n print(---測試用例test_simple add---)n self.assertEqual(self.a.minus(), -1, 兩值不相等)n self.assertEqual(self.a.add(), 3, 兩值不相等)n self.assertNotEqual(self.a.divide(), 1, 兩值不相等)nn def test_divide(self):n print(---測試用例test_simple divide---)n self.assertEqual(self.a.divide(), 0.5)nn def tearDown(self):n print(@@@結束test_simple@@@)nnif __name__ == __main__:n unittest.main()n

運行結果:

@@@初始化test_simple@@@n---測試用例test_simple add---n@@@結束test_simple@@@n@@@初始化test_simple@@@n---測試用例test_simple divide---n@@@結束test_simple@@@n

測試用例由setUp(),test_add(),test_divide(),tearDown() 4個部分組成,它們放在一個繼承於unittest.TestCase 的測試類下。

仔細觀察輸出結果,每個用例運行前都會運行 setUp(),結束後會運行tearDown(),從這裡應該能夠看出他們兩的作用。

setUp() 用於測試用例執行前的準備工作。

如測試用例中需要訪問資料庫,可以在setUp中建立資料庫連接並進行初始化;用例需要使用web,可以先實例化瀏覽器;app測試需先要啟動app,可先實例化app。

tearDown() 用於用例執行之後的善後工作。如關閉資料庫連接,關閉瀏覽器,關閉app。當用例沒運行成功是他也會執行。

test_add(),test_divide() 測試腳本,必須已test開頭或者結尾,如用unittest.main()方法執行用例,需要已test開頭。

一個TestCase 的實例就是一個測試用例。測試用例就是一個完整的測試流程,包括測試前準備環境的搭建(setUp),實現測試過程的代碼(run),以及測試後環境的還原(tearDown)。

單元測試(unittest)的本質也就在這裡,一個測試用例是一個完整的測試單元,通過運行這個測試單元,可以對某一個功能進行驗證。

推薦閱讀:

WEB自動化3:準備Selenium環境
該怎麼樣才能讓所有測試人員迅速學會自動化測試呢?
[貝聊科技]Appium 元素定位方式大揭秘
[從入門到不放棄]多瀏覽器的自動化測試(2)-雲服務測試

TAG:UnitTest | Python库 | 自动化测试 |