终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子:
1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)
响应结果是如下
2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:
3.在接口B下添加BeanShell PreProcessor,并编写脚本
4.在需要用到登录接口参数的地方,${ } 引用变量即可
以上用Json Path Extractor 的地方均可以用正则表达式来完成,由于本人对于正则表达式理解起来实在有点费劲,所以就在jmeter下安装的插件
方法二:
1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)
2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:
String X-Timestamp=bsh.args[0];
print (X-Timestamp);
${__setProperty(newstamp,${X-Timestamp},)};
String X-Signature=bsh.args[1];
print (X-Signature);
${__setProperty(newsig,${X-Signature},)};
String X-Nonce=bsh.args[2];
print (X-Nonce);
${__setProperty(newnonce,${X-Nonce},)};