場景一:
假設我們需要檢視某個使用者的個人資訊,一般情況下我們需要先登入這個使用者才能檢視使用者的個人資訊,在介面自動化測試中,一般可以通過獲取登入介面的token,在請求使用者資訊介面的時候帶上這個token來實現「登入並檢視使用者個人資訊」,這時候extract就發揮作用了,通過請求登入介面,提取登入token,將登入token寫入檢視使用者介面。
下面上例項:
/api/get-token 獲取到的token,通過變數$token 被 /api/users/$user_id 引用
- config:
name: testcase description
base_url:
variables:
device_sn: $
- test:
name: /api/get-token
variables:
os_platform: ios
request:
headers:
user-agent: python-requests/2.18.4
device_sn: $device_sn
os_platform: $os_platform
json:
method: post
url: /api/get-token
extract:
token: content.token
validate:
- eq: [status_code, 200]
- eq: [content.success, true]
output:
token
- test:
name: /api/users/$user_id
variables:
# user_id: $
user_id: $user_id
request:
headers:
user-agent: python-requests/2.18.4
device_sn: $device_sn
token: $token
json:
name: user1
password: '123456'
method: post
url: /api/users/$user_id
validate:
- eq: [status_code, 201]
- eq: [content.success, true]
- eq: [content.msg, user created successfully.]
output:
user_id
應用場景二:
檢視某個使用者的購買記錄,假設這一場景需要通過呼叫兩個介面實現,即通過呼叫登入介面獲取使用者的userid欄位,使用者購買記錄介面的請求引數即為userid。
實現方法:
通過呼叫登入介面,獲取並提取response內容,例如userid,再設定變數$userid,傳入購買記錄介面。
例項:假設我們返回的資料格式如下,這時候我們要提取 userphone
}}
關於content物件
content物件相當於request中的r.content,content物件的提取方式有兩種,
content.key 和 content.int,關於提取list中的字段,用的方法是content.int
例如:content.statuscode:提取的是 "statuscode":200的值 200
content.data.userphone:提取的是 "userphone":"13088889981"的值 13088889981
httprunner,從零到熟練運用,個人實戰總結請見:
httprunner變數 引數關聯與引數化
httprunner是基於requests的,所以處理思路與python中處理一樣 目錄1 變數 2 httprunner引數關聯 3 httprunner引數化 1 變數 比如說有一種場景,介面a需要傳乙個引數m值才能返回介面,介面b需要傳引數m的值以及a的返回值才能獲取結果,這時候可以把引數的值...
httprunner進行介面測試 引數化
1,用例格式 config test test 即 全域性配置 用例 用例 config模組裡面定義的是整個文字測試集的變數,即全域性變數 test模組裡面定義的是具體介面請求,下面看個具體例子 2,舉個例子 以某快遞查詢介面為例,新建乙個yaml檔案,命名為test post api.yaml c...
Httprunner引數化的案例演示(單個用例)
目錄 1.用例準備 1.1生成用例 1.2用例引數化 1.3自定義函式 2.執行用例 1.通過fiddler捕捉get token並轉換檔案格式為.yml。操作方法見httprunner使用文件案例錄製並轉換生成測試用例過程出現的問題及解決辦法 2.將用例放到已生成好的測試用例結構目錄中,目錄的生成...