接口自動化-python unittest+requests+HTMLrunner

 

從2015年畢業入行軟件測試,快滿4年了,之前技術分享都在百度貼吧上面,現在正式開始在博客中記錄工作技術,努力成長,加油

 

接口測試的步驟
1.組裝好該接口需要的參數數據
2.使用get或post附帶參數數據一起傳給要測試的接口
3.將第2步服務器的響應數據進行驗證
手動測試接口太繁瑣,重複工作內容多

接口一般較小改動,故接口自動化維護成本更低
1)接口自動化更早介入,更早發現問題並以更低的成本修復
2)縮短產品研發週期,縮短整個項目的上線時間
3)一次編寫,可多次使用,提高測試效率

 

接口自動化需求

1、接口編寫方便。
2、方便調試接口。
3、支持數據初始化。
4、生成測試報告。
5、支持參數化。

如何實現這些需求?

可以利用現有開源的框架和庫自己定製
python Unittest+Request+HTMLRunner
unittest可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試報告

 

通過requests庫發送HTTP/HTTPS請求
通過unittest單元測試框架組織和運行測試用例
通過HTMLTestRunner生成HTML格式的測試報告

 

 

 

 

Unitest

unittest.TestCase:TestCase類,所有測試用例類繼承的基本類。
class BaiduTest(unittest.TestCase):

unittest.main():使用TestLoader類來搜索所有包含在該模塊中以“test”命名開頭的測試方法,並自動執行他們。執行方法的默認順序是:根據ASCII碼的順序加載測試用例,數字與字母的順序爲:0-9,A-Z,a-z。

unittest.TestSuite():unittest的TestSuite()類是用來創建測試套件的,由TestLoader加載TestCase到TestSuite

通過HTMLTestRunner類下面的run()方法來運行suite所組裝的測試用例,入參爲測試套件TestSuite。

unittest.defaultTestLoader(): defaultTestLoader()類,通過該類下面的discover()方法可自動根據測試目錄start_dir匹配查找測試用例文件(test*.py),並將查找到的測試用例組裝到測試套件,因此可以直接通過run()方法執行用例。

 

 TESTCASE類

 

setUp():setUp()方法用於測試用例執行前的初始化工作。例如測試用例中需要訪問數據庫,可以在setUp中建立數據庫連接並進行初始化。

 

tearDown():tearDown()方法用於測試用例執行之後的善後工作。如關閉數據庫連接。

 

assert*():一些斷言方法:在執行測試用例的過程中,最終用例是否執行通過,是通過判斷測試得到的實際結果和預期結果是否相等決定的。

 

assertEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,相等則測試用例通過。

 

assertTrue(x,[msg='測試失敗時打印的信息']):斷言x是否True,True則測試用例通過。

 

執行流程

寫好TestCase
由TestLoader加載TestCase到TestSuite
然後由Runner來運行TestSuite中的TeastCase,運行的結果保存在Result中。
調用Runner中的run()來執行用例。
根據執行結果result生成報告

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章