天天看點

Python接口自動化測試工具(Pytest+Allure+jsonpath+xlrd+excel、支援Restful接口規範)

目錄

廢話

功能

運作機制

已知問題

環境與依賴

目錄結構

執行順序

config.ymal展示

EXcel用例展示

腳本一覽

請求方法封裝

讀取excel用例資料

存儲接口實際結果響應

處理依賴資料邏輯

啟動檔案

運作測試

運作結果

緻謝

源碼位址

更新

和幾個朋友聊天然後出來的産物希望能幫到大家學習接口自動化測試,歡迎大家交流指出不合适的地方,源碼在文末

實作:get/post請求(上傳檔案)::理論上其他delete/put等請求也實作了,支援restful接口規範

發送郵件

生成allure測試報告

壓縮測試報告檔案

資料依賴

通過讀取配置檔案,擷取到host位址、提取token的jsonpath表達式,提取實際響應結果用來與預期結果比對的jsonpath表達式。

讀取excel用例檔案資料,組成一個符合pytest參數化的用例資料,根據每列進行資料處理(token操作、資料依賴)

token,寫,需要使用一個正常登入的接口,并且接口中要傳回token資料,才可以提取,token,讀為該請求将攜帶有token的header,token 無資料的将不攜帶token

資料依賴處理,從excel中讀取出來的格式{"用例編号":["jsonpath表達式1", "jsonpath表達式2"]},通過用例編号來擷取對應case的實際響應結果(實際響應結果在發送請求後,回寫到excel中),通過jsonpath表達式提取對應的依賴參數字段,以及對應的值,最終會傳回一個存儲該接口需要依賴資料的字典如{"userid":500, "username": "zy7y"},在發送請求時與請求資料進行合并,組成一個新的data放到請求中

每次請求完成之後将回寫實際的響應結果到excel中

根據配置檔案中配置的jsonpath表達式提取實際響應内容與excel中預期結果的資料對比

生成測試報告

壓縮測試報告檔案夾

執行接口消耗時間變長,代碼亂(語言學的不紮實),頻繁讀寫excel(可考慮用字典存每個接口的實際響應,取值直接從響應字典中取出)

整體代碼結構優化未實作,導緻最終測試時間變長,其他工具單接口測試隻需要39ms,該架構中使用了101ms,考慮和頻繁讀寫用例資料導緻

名稱

版本

作用

python

3.7.8

pytest

6.0.1

底層單元測試架構,用來實作參數化,自動執行用例

allure-pytest

2.8.17

allure與pytest的插件可以生成allure的測試報告

jsonpath

0.82

用來進行響應斷言操作

loguru

0.54

記錄日志

PyYAML

5.3.1

讀取yml/yaml格式的配置檔案

Allure

2.13.5

要生成allure測試報告必須要在本機安裝allure并配置環境變量

xlrd

1.2.0

用來讀取excel中用例資料

yagmail

0.11.224

測試完成後發送郵件

requests

2.24.0

發送請求

運作test_api.py -> 讀取config.yaml(tools.read_config.py) -> 讀取excel用例檔案(tools.read_data.py) -> test_api.py實作參數化 -> 處理是否依賴資料 ->base_requests.py發送請求 -> test_api.py斷言 -> read_data.py回寫實際響應到用例檔案中(友善根據依賴提取對應的資料)

Python接口自動化測試工具(Pytest+Allure+jsonpath+xlrd+excel、支援Restful接口規範)

首先確定需要的環境與依賴包無問題之後,使用Pycharm打開項目,找到<code>settings</code>修改為unitest或者其他非pytest,具體操作如下

Python接口自動化測試工具(Pytest+Allure+jsonpath+xlrd+excel、支援Restful接口規範)
Python接口自動化測試工具(Pytest+Allure+jsonpath+xlrd+excel、支援Restful接口規範)

jsonpath文法學習:https://blog.csdn.net/liuchunming033/article/details/106272542

zip檔案壓縮:https://www.cnblogs.com/yhleng/p/9407946.html

歡迎交流。

源碼位址Gitee - version1.0分支: https://gitee.com/zy7y/apiAutoTest/tree/version1.0/

源碼位址GitHub- version1.0 分支:https://github.com/zy7y/apiAutoTest/tree/version1.0/

2020/11/23 - 優化資料參數、路徑參數依賴處理方式,現版本與之前同等環境下,測試時間提升2S

介紹:https://www.cnblogs.com/zy7y/p/14022398.html

作者:zy7y

出處:http://www.cnblogs.com/zy7y

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。