postman使用3-前置指令碼與介面關聯
八、前置指令碼
前置指令碼:在Pre-requests Script中編寫的JavaScript指令碼。一個請求在傳送之前,會先去執行Pre Request Script(前置指令碼)中的程式碼 。
主要使用場景:在傳送請求前需要對介面的資料做進一步處理,就都可以使用這個功能,比如說,登入介面的密碼,在傳送前需要做加密處理,那麼就可以在前置指令碼中做加密處理,再比如說,有的介面的輸入引數有一些隨機數,每請求一次介面引數值都會發送變化,就可以在前置指令碼中編寫生成隨機數的程式碼 。
案例:隨機新增新聞
實現步驟:
- 在前置指令碼中編寫生成隨機數
- 將這個值儲存成環境變數
- 將引數t的值替換成環境變數的值
指令碼:
//生成隨機整數 var random = Math.floor(Math.random()*100+1) console.log("隨機數",random) //將隨機數儲存為環境變數 pm.environment.set('random',random)
九、介面關聯
在我們測試的介面中,經常出現這種情況 。上一個介面的返回資料是下一個介面的輸入引數
實現思路:
- 提取上一個介面的返回資料值,
- 將這個資料值儲存到環境變數或全域性變數中
- 在下一個介面獲取環境變數或全域性變數
十、常見返回值獲取
{
"code": 0,
"message": "請求成功!",
"data": {
"roles": {
"api": [
"API-USER-DELETE"
],
"points": [ //points是陣列,所以需要下標獲取
"point-user-delete",
"POINT-USER-UPDATE",
"POINT-USER-ADD"
]
},
"authCache": null
}
}
//獲取json體資料
var jsonData = pm.response.json()
// 獲取user_id的值,通過下標獲取列表中某個元素
var user_id = jsonData.data.roles.points[1]
獲取列表的最後一個元素
{
"code": 0,
"message": "請求成功!",
"data": {
"total": 24,
"rows": [
{
"id": "1066370498633486336",
"mobile": "15812340003",
"username": "zbz"
},
{
"id": "1071632760222810112",
"mobile": "16612094236",
"username": "llx"
},
...
{
"id": "1075383133106425856",
"mobile": "13523679872",
"username": "test001",
},
//獲取json體資料
var jsonData = pm.response.json()
// 獲取id的值,通過slice(-1)獲取列表中最後一個元素。
var id = jsonData.data.rows.slice(-1)[0]