Jmeter跨线程组传参---全局变量

在接口测试过程中,往往一个请求需要另一个请求的响应信息,比如进行一些业务操作,需要依赖获取token请求的token值,而这两个请求分别位于不同的线程组中,该如何处理呢?

一、通过正则表达式或者Json提取器获取响应信息

获取token请求的响应信息:
Jmeter跨线程组传参---全局变量

如上图,在获取token请求下,添加Json提取器,提取响应信息的token值,变量名为token
Jmeter跨线程组传参---全局变量

二、将正则表达式或者Json提取器得到的值,设置为全局变量

利用函数助手中的setProperty函数,属性名称为全局变量名称,Value of property为上一步Json提取器token值,${__setProperty(token,${token},)}
Jmeter跨线程组传参---全局变量
在获取token请求下,添加–后置处理器 – BeanShell PostProcessor,并将表达式粘贴至脚本框里,此时token即为全局变量
Jmeter跨线程组传参---全局变量

三、如何跨线程组引用全局变量?

使用函数助手中的P函数,来获取属性值,从而实现跨线程组,参数值传递;
Jmeter跨线程组传参---全局变量
${__P(token,)}:即可得到获取token请求的token值,将${__P(token,)}添加至新增客户的请求头中
Jmeter跨线程组传参---全局变量

注意点:

这种引用关系存在执行的先后顺序,需要在测试计划中设置执行完一个之后,再执行另一个,否则会由于不同线程之间执行时间差,导致参数无法获取到
Jmeter跨线程组传参---全局变量