前邊的隨筆主要介紹的requests模塊的有關知識個內容,接下來看一下python的單元測試框架unittest。熟悉 或者了解java 的小伙伴應該都清楚常見的單元測試框架 Junit 和 TestNG,這個招聘的需求上也是經常見到的。python 里面也有單元
測試框架-unittest,相當於是一個 python 版的 junit。python 里面的單元測試框架除了 unittest,還有一個 pytest 框架,這個實際上用的比較少,后面有空再繼續介紹和分享。unittest單元測試框架不僅可以適用於單元測試,還可以適用WEB自動化測
試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。
學習和了解unittest
1、查看其中文官網:https://docs.python.org/zh-cn/3/library/unittest.html 英文官網:https://docs.python.org/3/library/unittest.html
2、先導入 unittest用 help 函數查看源碼解析查看描述:
Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's Smalltalk testing framework.
翻譯:python 的單元測試框架,是基於 java 的 junit 測試框架
一、簡單了解
1、第一行是導入 unittest 這個模塊
2、class 這一行是定義一個測試的類,並繼承 unittest.TestCase 這個類
定義測試類,父類為unittest.TestCase。 #可繼承unittest.TestCase的方法,如setUp和tearDown方法,不過此方法可以在子類重寫,覆蓋父類方法。 #可繼承unittest.TestCase的各種斷言方法。
3、接下來是定義了兩個測試 case 名稱:testAdd 和 testMultiply4、注釋里面有句話很重要:## test method names begin 'test*'--翻譯:測試用例的名稱要以 test 開頭
4、然后是斷言 assert,這里的斷言方法是 assertEqual-判斷兩個是否相等,這個斷言可以是一個也可以是多個
5、if 下面的這個 unittest.main()是運行主函數,運行后會看到測試結果(跑了兩個用例耗時 0.000 秒,兩個用例都通過)
import unittest class Page_test(unittest.TestCase): def test_001(self): self.assertNotEqual(1,1) def test_002(self): self.assertNotEqual(1,2) if __name__ == '__main__': unittest.main()
二、Class內前置條件和后置條件
1、setUp:在寫測試用例的時候,每次操作其實都是基於打開瀏覽器輸入對應網址這些操作,這個就是執行用例的前置條件。
2、tearDown:執行完用例后,為了不影響下一次用例的執行,一般有個數據還原的過程,這就是執行用例的后置條件。
3、setUpClass:在class類下只執行一次,在所有用例執行之前執行,setUp之前
4、tearDownClass:在class類下只執行一次,在所有用例執行之用執行,tearDow之后
5、很多小伙伴執行完用例,都不去做數據還原,以致於下一個用例執行失敗
6、前置和后置都是非必要的條件,如果沒有也可以寫 pass