第一篇實現了一個單接口的測試,第二篇我們來實現串接口的測試。首先我們需要搭建一個可測試的系統,可以直接在github上找一個商城系統,或者直接在公司系統測試環境進行測試。
爲什麼需要串接口?
我們知道“單接口”的測試非常好完成,可以通過各種接口請求工具比如postman,python request包等去發起post,get請求。但是單接口無法驗證我們的業務邏輯,只能驗證這個單接口是否能夠請求,試想一下,萬一開發那天覺得自己以前寫的代碼不夠美觀,然後改動了一下,沒有通知你,但是一上線就發現業務邏輯跑不通了,造成了很嚴重的影響,後果可想而知…
如何用httprunner實現串接口
1、概念基本解釋:
相較與教程(一)中的目錄,我添加了order項目,在order中新增了api、testcases、testsuites以及debugtalk.py(在上一篇文章中有說明)
文件夾說明:
api:用來存放單接口相關信息
testcases:引用api中定義的接口,組成測試用例
testsuites:測試用例集的集合
字段說明:
variables:用來定義變量,必須在api中定義相關變量,在testcases中引用變量時,必須先在api中引用
validate:斷言,用來比較定義預期結果
extract:接口返回的數據
(如圖中取出token數據,json.data.token )
2、定義單接口
api 中定義單接口的各項參數,
請求url ,請求方式,請求參數等
login.yml
name: 用戶登陸
base_url: http://192.168.0.120:8080
variables:
status: 0
username: admin1
password: admin1
request:
url: /auth
method: POST
params:
userName: $username
password: $password
validate:
- eq: [json.status,$status]
3、定義測試用例
config中定義的是全局變量
test中引入api中定義的相關參數
extract將上一個接口的返回值,放入到下一個接口的請求參數中
${authorization()} 調用在debugtalk中定義的函數,封裝了token格式
- config:
name: 查詢訂單
base_url: http://192.168.0.120:8080
variables:
status: 0
username: admin1
password: admin1
- test:
name: 用戶登陸
api: project/order/api/login.yml
variables:
userName: $username
password: $password
extract:
data_token: json.data.token
validate:
- eq: [json.status,$status]
- test:
name: 獲取訂單信息
api: project/order/api/order_info.yml
variables:
token: ${authorization($data_token)}
validate:
- eq: [json.status,$status]
4、測試用例集合
將已經封裝好的測試用例,添加到testcases中
config:
name: 訂單相關測試用例合集
testcases:
-
name: 查詢訂單
testcase: testcases/order_cases.yml
5、執行用例
hrun project/order/testsuites/order_suites.yml
項目代碼地址:
https://github.com/627886474/httprunner
commit記錄:
git checkout b39d9f6eb864b318c89c914f8fb24dc025f180e5