前言:
HttpRunner
是一個開源的 API 測試工具,支援 HTTP(S)/HTTP2/WebSocket/RPC 等網路協議,涵蓋介面測試、效能測試、數字體驗監測等測試型別。簡單易用,功能強大,具有豐富的外掛化機制和高度的可擴充套件能力。
現在版本已經迭代到V4.3.0,我以V4.3.0版本作為學習案例。
windows環境安裝:
pip install httprunner
安裝完成後,可以用hrun 命令了,比如檢視版本:
C:\Users\DELL>hrun -V
v4.3.0
腳手架建立專案:
1.閱讀官方文件,httprunner迭代到4.X後,新增了hrp命令,可以上github上下載hrp.exe工具:
解決到任一目錄:
2.配置環境變數:
3.試著用它來建立專案:
hrp startproject httprunnerV4.0_demo
從列印日誌可以看出,hrp主要是呼叫cmd.exe命令來先建立python虛擬機器(C:\Users\DELL\.hrp\venv),然後在上面建立專案,看了其它部落格都是你抄我,我抄你的,完全不瞭解其中的原理,這也導致遇到以下問題時,不會自己解決,比如這哥們:
分析:
其中的問題就是:Error: pip install funppy==v0.5.0 failed: pip install package failed: exec: "cmd.exe": executable file not found in %PATH%: prepare python3 venv failed
分析根因:hrp在呼叫cmd時,沒有找到cmd.exe,猜想就是自己的cmd環境變數沒配置好(我開始也遇到過)
解決方式:很簡單,在Path加上cmd的環境變數就行了:
%SystemRoot%\system32;%SystemRoot%;C:\Windows\System32\cmd.exe;
建立後,如下是專案的目錄結構
httprunnerV4.0_demo
├── .env
├── .gitignore
├── debugtalk.py
├── har
│ └── .keep
├── reports
│ └── .keep
└── testcases
├── demo_ref_testcase.yml
├── demo_requests.yml
└── demo_with_funplugin.json
相關目錄與檔案說明
- .env 是環境配置檔案
- .gitignore 傳git倉庫時忽略檔案
- debugtalk.py 輔助函式功能檔案
- har 錄製的檔案目錄
- eports 報告目錄
- testcases 測試用例目錄
其中,testcases 資料夾中包含了多個示例測試用例,我們寫自動化用例主要是在這目錄編寫yml檔案
編寫測試場景:
介面間的引數依賴是最常見的,我這裡的場景是:
1.登入自己的測試平臺imos,獲取token
2.請求頭加上token檢視任務列表
get_imos_task_list.yml
`config: name: "login_imos_case" variables: username: admin password: quxue2023 base_url: "http://120.25.121.168:19001/api"teststeps:
name: "登入測試平臺imos"
request:
method: POST
url: /login
headers:
Content-Type: application/json
User-Agent: HttpRunner/${get_user_agent()}
json:
username: ${username}
password: ${password}
extract:
token: "body.data.token"
validate:
- eq: ["status_code", 200]
name: "檢視任務列表"
request:
method: GET
url: /task
headers:
Accept: application/json, text/plain, */*
Authorization: Bearer ${token}
params:
page: 1
size: 10
search: ""
validate:
- eq: ["status_code", 200]
- eq: ["body.code", 200]
- eq: ["body.message", "操作成功"]
`
執行測試場景:
加上 --gen-html-report 是生成報告
hrp run .\testcases\get_imos_task_list.yml --gen-html-report
開啟html報告,熟悉的畫面回來了:
可能遇到問題:
全域性變數未生效,導致真實請示url沒有加上base_url
檢視官網,才知道人家早已經把base_url搬到.evn,編輯base_url即可
總結:
1.httprunner4.x新增了命令工具hrp,主要呼叫cmd命令來完成一些操作,如建立虛擬環境>建立專案,說白了就是操作的封裝。
2.config裡的base_url已經搬到.env檔案