python3+requests+unittest:接口自動化測試(一)


轉載請表明出處:https://www.cnblogs.com/shapeL/p/9179484.html

 

簡單介紹框架的實現邏輯,參考代碼的git地址:

https://github.com/zhangying123456/python_unittest_interface

1.環境准備

python3 + pycharm編輯器

2.框架目錄展示

(該套代碼只是簡單入門,有興趣的可以不斷后期完善)

(1)run.py主運行文件,運行之后可以生成相應的測試報告,並以郵件形式發送;

(2)report文件夾存放測試結果報告;

(3)unit_test文件夾是存放測試用例(demo.py和test_unittest.py用例用法介紹,實際項目中可以按照不同模塊新建python package,來存放不同模塊的接口用例);

(4)util對測試接口相關方法的封裝:HTMLTestRunner.py生成測試報告的封裝;send_mail.py發送郵件的封裝;test_get_post.py接口請求類型的封裝。

3.代碼實現說明

(1)get、post接口請求實例介紹

【1】requests.get()、requests.post()用法可以參考文檔:https://www.cnblogs.com/shapeL/p/9037035.html

【2】請求之后對返回結果進行斷言:assertEqual()等,斷言方法很多,可上網查詢

(2)實際中,有些參數或方法在執行用例之前必須說明,這就涉及到setUp、tearDown、setUpClass、tearDownClass的用法

【1】setup():每個測試函數運行前運行;teardown():每個測試函數運行完后執行;setUpClass():必須使用@classmethod 裝飾器,所有test運行前運行一次;tearDownClass():必須使用@classmethod裝飾器,所有test運行完后運行一次

【2】也可以對某些用例執行過程中跳過:unittest.skip(),具體使用方法可上網查詢

(3)如果每次接口請求時都使用requests/get、post請求實在是繁瑣,我們可以對該方法進行封裝,接口請求時直接調用即可

(4)測試用例編寫完之后,主函數run.py直接使用unittest模塊將所有用例一並執行

【1】unittest模塊:TestSuite 多個測試用例集合在一起;TestRunner 是來執行測試用例的,測試的結果會保存到TestResult實例中,包括運行了多少測試用例,成功了多少,失敗了多少等信息(unittest.TextTestRunner().run(suite))

【2】suite.addTests()和suite.addTest()均可實現

# 2種用法:第一種suite.addTest()
suite.addTest(Case('test_case01'))
suite.addTest(Case('test_case02'))
suite.addTest(Test('test_01'))
suite.addTest(Test('test_02'))

#2種用法:第二種suite.addTests()
suite.addTests(map(Test, ["test_01", "test_02"]))
suite.addTests(map(Case, ["test_case01", "test_case02"]))

【3】TestRunner測試結果輸出到控制台,要將測試結果輸出到report中,使用HTMLTestRunner.py文件(該文件參考地址:https://github.com/huilansame/HTMLTestRunner_PY3

(5)測試完成之后,想要將測試結果發送郵件給相關人員

發送郵件具體實現方法,參考文檔:https://www.cnblogs.com/shapeL/p/9115887.html

 

說明:

1.代碼中涉及到的測試數據都屏蔽掉了,可以直接使用自己負責項目的真實數據進行了解;

2.該套測試腳本相對基礎,需要完善的地方還要很多,歡迎各位學習交流;

3.后續會再寫一篇博客接口自動化測試(二),實現Excel來管理用例等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM