Postman是做接口測試的,但是很多接口并不是直接就能測,有的需要一些預處理。比如說身份認證,需要傳遞一個token。如果做網頁測試,一般打開登陸界面的時候就會生成一個token,如果返回值是json格式,用Postman從中提取值是很簡單的,在Tests中輸入。
?
1.返回值是json格式,其中的某個參數的值又是一個json格式;需要獲取第二個層級的json參數值,可以如下:
var jsonData=JSON.parse(responseBody);? //獲取body中返回的所有參數
var jdata=jsonData.data;? //獲取其中data的值,jdata是一個json格式
pm.environment.set("token",JSON.parse(jdata).JwtKey);? ? //再從jdata中獲取其中的JwtKey參數值
?send
之后點右上角小眼睛,如果環境變量取到值的話這里會有顯示的:
?
?
2.返回值是json格式,其中的某個參數的值又是一個數組格式,數組的每一個值又是json格式;如果獲取第三個層級的json某個參數值,可以如下:
pm.test("運營商ID 1111", function () {
var jsonData = pm.response.json();? ??//獲取body返回值的全部參數
var jsonDicData = jsonData.data;? ? //獲取其中的data參數
var jsonDicData = jsonData.data;
pm.expect(jsonDicData[0].oI_ID).to.eql("1111");???//jsonDicData[0]是獲取數組中的第一個值,這個值也是一個json格式。?.oI_ID 是獲取第三個層級中json某個參數值
});
?
?
?
總結
Postman從響應中提取值的方法:
-
從json中提取
var jsonData =JSON.parse(responseBody);
-
從html的Header中提取
var value = postman.getResponseHeader("Access-Token"); pm.environment.set("Access-Token",value);
-
從html的body中提取
var jsonObject = xml2Json(responseBody);
將json object轉換成字符串的函數JSON.stringify(jsonObject)
。
?
參考文章:https://jlhxxxx.github.io/postman-start.html