httprunner是基於requests的,所以處理思路與python中處理一樣
目錄
1、變量
2、httprunner參數關聯
3、httprunner參數化
1、變量
比如說有一種場景,接口a需要傳一個參數m值才能返回接口,接口b需要傳參數m的值以及a的返回值才能獲取結果,這時候可以把參數的值作為一個全局變量,然后傳值
這里用到關鍵字variables
- config: name: my_test base_url: http://localhost:8090 variables: m: test - test: name: a request: url: /a method: post headers: Content-Type: application/json json: m: $m extract: - q: content.q validate: - eq: [status_code, 200] - test: name : b request : url : /b method : POST headers: Content-Type: application/json token: $token json: m: $m q: $q validate : - eq : [status_code,200]- config: name: my_test base_url: http://localhost:8090 variables: m: test - test: name: a request: url: /a method: post headers: Content-Type: application/json json: m: $m extract: - q: content.q validate: - eq: [status_code, 200] - test: name : b request : url : /b method : POST headers: Content-Type: application/json token: $token json: m: $m q: $q validate : - eq : [status_code,200]
2、httprunner參數關聯
2個接口直接有關聯,比如新增的接口需要登錄信息才能請求成功,這時候就需要把登錄信息傳給登錄接口,可以是cookies或者token
這里用到關鍵字extract關鍵字完成提取,這里以某平台的登錄token關聯為例:
mytest.yaml
- config: name: my_test base_url: http://localhost:8090 - test: name: test_demo case1 request: url: /admin/login method: post headers: Content-Type: application/json json: username: admin password: 123456 extract: - token: content.token # 提取token validate: - eq: [status_code, 200] - test: name : add request : url : /admin/add method : POST headers: Content-Type: application/json
token: $token
json: m: $m
validate : - eq : [status_code,200]
3、httprunner參數化
在case中需要添加多種場景的參數取值組合,來檢驗case,以某平台登錄為例子,以下記錄以csv來傳參,用到關鍵字parameters,傳csv 使用parameterize(可簡寫為P)
myuser.csv
username,password name1,123456 name2,1234567
mytest.yaml
- config: name: my_test base_url: http://localhost:8090 parameters: - username-passwd:${P(myuser.csv)} #1、參數名稱與文件第一行成對應關系 2、從第2行開始取值 - test: name: test_demo case1 request: url: /admin/login method: post headers: Content-Type: application/json json: username: $user password: $password validate: - eq: [status_code, 200]