轉載請代表出處: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來管理用例等。