httprunner自動化實例(二)

第一篇實現了一個單接口的測試,第二篇我們來實現串接口的測試。首先我們需要搭建一個可測試的系統,可以直接在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章