已退 (失) 休 (業),公開個人寫的 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
- 工作流自動化和RPA自動化,哪個更適合你?
- 非常適合小白入門的Go語言學習路線Go
- 介面自動化從個人走向團隊協作開發
- 介面自動化測試解決方案
- 如何選擇合適的自動化測試工具?
- 「乾貨」介面自動化實踐:高效智慧介面場景自動巡檢方案
- 非常適合mac os的Tuner for YouTube musicMac
- 寫一個自動回覆的聊天機器人機器人
- Python之介面自動化初級:開始一個簡單的介面測試Python
- 再見Jenkins!一款更適合國人的自動化部署工具,賊帶勁!Jenkins
- 期末人福音——用Python寫個自動批改作業系統Python作業系統
- 基於Python的介面自動化-讀寫excel檔案PythonExcel
- 何時適合進行自動化測試?(下)
- 何時適合進行自動化測試?(上)
- python+pytest介面自動化(2)-HTTP協議基礎PythonHTTP協議
- 【python介面自動化】- 使用requests庫傳送http請求PythonHTTP
- python+pytest介面自動化(12)-自動化用例編寫思路 (使用pytest編寫一個測試指令碼)Python指令碼
- python適合小白學嗎?Python
- 如何選取合適的前端動效方案?前端
- 5個非常良心好用的軟體工具,適合各種場景
- 介面自動化測試框架--http請求的get、post方法的實現框架HTTP
- 適合小白練習的幾個Python小遊戲專案-含開發思路Python遊戲
- python 介面自動化Python
- 全自動化介面
- Httpclient 介面自動化HTTPclient
- 辦公自動化:PDF檔案合併器,將多個PDF檔案進行合併
- 辦公場地租賃,適合創業公司的辦公空間創業
- 自動化測試是什麼?什麼軟體專案適合自動化測試?
- http介面測試工具,cookie自動追加HTTPCookie
- 一個基於多介面的業務自動化測試框架框架
- 寫給通訊人的“失業”生存指南
- 介面自動化與ui自動化區別UI
- 3個關鍵點助力工業機器人自動化機器人
- 小白求教:小程式想做介面自動化,如何能拿到微信返回的 code 呢?
- 辦公自動化系統必備的5個要素
- 一個小白的程式設計自學記錄----相機攝像自動化程式設計