二、介面關聯,介面依賴(多介面關聯)postman在Tests中寫js指令碼,相當於jmeter中的後置處理器或beanshell(寫java指令碼)後置處理器
Tests(請求之後寫js,相當於jmeter後置處理器) Pre-request Script(請求之前寫js,相當於jmeter前置處理器)
postman實現介面關聯:1>Tests: 從上一個介面響應中取值設定全域性變數
a、body為json時:json.parse var data_dict = JSON.parse(responseBody)
b、body非json時:正則 var result = responseBody.match(new RegExp('"access_token":"(.*?)"'))
c、cookie提取 var csrf_token = postman.getResponseCookie('csrf_token');
d、header中提取 var conn = postman.getResponseHeader('Connection')
2>下個介面使用全域性變數{{變數}}
jmeter實現介面關聯:1>上一個介面加後置處理器:
a、json提取器 響應body
b、正則提取器 響應(響應行,響應頭,響應body)
c、beanshell提取器(在同一執行緒中,透過後置處理器拿到的變數,都可以透過vars.get("變數")獲取,跨執行緒組拿不到,除非設定全域性props變數)
String token= vars.get("access_token");//字串必須是雙引號 獲取後置處理器得到的變數access_token log.info(token);
2>下個介面使用:${變數}
介面關聯:下一個介面的引數使用了上一個介面的返回值
2.1 使用json .parse格式解析----------------------------jmeter jsonpath提取器
從返回值當中提取
在第一個介面的請求完之後:Tests提取值
var times = Date.now(); pm.globals.set("times", times); console.log(times)
//讓介面請求停留3秒 const sleep = (milliseconds) => { const start = Date.now(); while (Date.now() <= start + milliseconds) {} }; sleep(3000); console.log("請求之前")