二、接口关联,接口依赖(多接口关联)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("请求之前")