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

轉載請代表出處:http://www.javashuo.com/article/p-yiygkcyw-db.htmlhtml

 

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

https://github.com/zhangying123456/python_unittest_interfacegit

1.環境準備github

python3 + pycharm編輯器框架

2.框架目錄展現編輯器

(該套代碼只是簡單入門,有興趣的能夠不斷後期完善)函數

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

(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()用法能夠參考文檔:http://www.javashuo.com/article/p-vlkamtti-ea.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)測試完成以後,想要將測試結果發送郵件給相關人員

發送郵件具體實現方法,參考文檔:http://www.javashuo.com/article/p-rmamgiew-ec.html

 

說明:

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

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

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

相關文章
相關標籤/搜索