天天看點

postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?

這個問題之前困擾了我很久,一直搜尋類似的部落格都沒找到答案,終于自己慢慢摸索中找到了答案!

(部落格引用請注明連結,謝謝。)

用postman做接口測試,肯定會遇到上一接口的傳回值給下一接口調用的問題,那麼需要可将上一參數設定為全局變量。

1、如圖1的“parentId”要給到下一接口調用,可将“parentId”設定為全局變量(圖2)。

在“Tests”中寫入代碼為:

var data = JSON.parse(responseBody); //擷取所有的傳回資料;

tests[data.result] = responseBody.has("true");//傳回資料中有“true”

tests[data.msg] = responseBody.has("登入成功");//傳回資料中有“登入成功”。(這兩個斷言依照傳回資料填寫)

pm.globals.set("parentId", data.data.parentId);//将“parentId”設定為全局變量(“parentId”在傳回資料中是唯一的)

postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?
postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?

2、設定好後,點選發送,“parentId”的值就自動填寫到全局變量中(圖3)

postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?

3、遇到傳回值中需要調用的參數不止一個,但是要調用第2個,傳回資料如圖4--“parentStudentId”不止一個,該怎麼辦呢?

如果按照上面的代碼“pm.globals.set("parentStudentId", data.data.parentStudentId);”發送的話,是擷取不到“parentStudentId”的值(圖5)

postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?
postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?

4、因為data的資料中“parentStudentId”有多個值,那肯定代碼中要注明擷取的是data資料中的哪個,即data[1]表示取第2個,data[0]表示取第1個。

代碼如圖6(pm.globals.set("parentStudentId", data.data[1].parentStudentId););

此時再請求下,則可擷取到“parentStudentId”的值了(圖7).

postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?
postman 接口傳回值有多個相同key時(不唯一),怎麼提取第2個value給下一接口調用?

繼續閱讀