已退 (失) 休 (業),公開個人寫的 HTTP 介面自動化方案 (pytest+requests+allure+jsonschema),非常適合小白
寫在前面
本人 40+ ,在帝都幹了差不多 20 年的軟體測試相關工作,基本上都算大廠或二線大廠吧,主要涉及反病毒主動防禦等安全類客戶端,Android 客戶端,SaaS 系統等,去年起開始賦閒。前幾天給一個朋友的團隊做 HTTP 介面自動化分享,於是翻出了之前寫的框架,略微整理下,主要是去掉了老東家用的 slack 告警,email 檢查等,並完善了部分 README 內容,現在公開此方案,希望對有些朋友能有所幫助。
另外,大家使用中如果有什麼問題和要求,可在此跟帖,或直接在 github 提 Issues,我抽空可能會回覆哈。此外還寫了個基於 playwright 的 web 自動化測試框架,過些天整理後也可能會公開分享。
API 自動化專案地址: https://github.com/wangdaqiao/Http_API_Auto
Python 3 實現 Http API 自動化 (pytest + requests + Allure)
主要思路和步驟
- 藉助 Mitmproxy 來抓取產品使用中的 http api 介面資料
- 執行指令碼 generate_newcases_from_api_record.py 處理上一步抓取到的介面資料,可生成新 api 的測試資料。
- 根據需要設定 api 的測試資料,補充到框架中。如完善 status code, 指定執行環境和優先順序,提取引數變數,完善 jsonschema 校驗等,通常僅需處理引數提取邏輯。
- 執行測試。
實現功能
- 透過 requests session 會話,一次登入,免除 cookie 關聯處理
- 測試資料驅動,csv 方便版本比較,補充完善用例
- 自動生成測試用例(含斷言),小白也很好用
- 支援介面間傳參
- 支援多程序,加速測試執行過程
- 支援多使用者
- 支援多環境切換,僅需改動一處
- 斷言:除了 status code,還支援 json schema 斷言
- 漂亮的 Allure 報告,可檢視每個介面的請求和響應資料,以及斷言,方便排查
- Slack 告警(老東家用的,這裡已去除)
- ......
整體結構
。。。。。。
用法
- 安裝 Python 3.7+
- 下載程式碼。
- 在當前資料夾中,執行
pip install -r requirement.txt
安裝依賴包 - 透過“allure2”安裝 allure 2.1.38+
- 參考 “config” 子資料夾中的
config_sample.yaml
生成config.yaml
檔案,並進行配置。 - 如果是想體驗下效果,可先進入
flask demo
目錄,執行python app.py
命令在本地啟動一個 http 測試服務端,否則請忽略。 - 執行
python3 run_api_cases.py
,完成後預設會自動開啟測試報告網頁。 另外,可以在第一個引數中指定執行環境,例如python3 run_api_cases.py prod
補充:報告會有每個介面的 url,請求方法,payload,狀態碼,返回資料,如果失敗,會註明失敗原因,如狀態碼不符合預期,或返回的資料哪裡與預期不符,不妨看看這個失敗 case 的截圖吧
相關文章
- 【分享】5個非常適合Python小白的開發工具!Python
- 非常適合小白入門的Python學習路線Python
- 非常適合小白入門的Go語言學習路線Go
- 介面自動化從個人走向團隊協作開發
- 如何選擇合適的自動化測試工具?
- 介面自動化測試解決方案
- 工作流自動化和RPA自動化,哪個更適合你?
- 「乾貨」介面自動化實踐:高效智慧介面場景自動巡檢方案
- 非常適合mac os的Tuner for YouTube musicMac
- 如何選取合適的前端動效方案?前端
- python適合小白學嗎?Python
- 小白求教:小程式想做介面自動化,如何能拿到微信返回的 code 呢?
- 自動化測試是什麼?什麼軟體專案適合自動化測試?
- Httpclient 介面自動化HTTPclient
- 全自動化介面
- [適配性]移動Webapp自適應方案WebAPP
- 基於Python的介面自動化-讀寫excel檔案PythonExcel
- 【python介面自動化】- 使用requests庫傳送http請求PythonHTTP
- 介面自動化與ui自動化區別UI
- 介面自動化測試框架--http請求的get、post方法的實現框架HTTP
- http介面測試工具,cookie自動追加HTTPCookie
- 移動端自適應個人理解與收集——remREM
- python+pytest介面自動化(2)-HTTP協議基礎PythonHTTP協議
- openpyxl 的基本操作 (辦公自動化)
- Python自動化辦公Python
- 介面自動化測試
- python 介面自動化Python
- 如何選擇一款適合自己的APP自動化測試工具?APP
- 《軟體自動化測試成功之道》節選1 - 選擇合適的專案實施自動化測試
- 適合前端的HTTP全流程總結前端HTTP
- 利用AI智慧體實現自動化公開課AI智慧體
- Web移動端 自適應縮放介面Web
- 介面自動化的關鍵思路和解決方案,本文全講清楚了
- 介面自動化之介面整理(抓包)
- OA辦公系統,幫助企業完成協同自動化辦公
- 華為測試大牛Python+Django介面自動化怎麼寫的?PythonDjango
- 適合中小企業的OA辦公軟體有哪些特點
- 自動化測試常見問題總結!(適合新手團隊)