Jmeter接口测试——跨线程组调用参数(token为例)

时间:2022-11-03 21:39:05

昨天学会了动态获取token,今天测试接口时希望能够实现跨线程调用token值。

实现原理:

jmeter本身的“__setProperty”函数可以把某参数的值设置成jmeter本身的内置属性,而jmeter的内置属性是所有线程组都可以调用的,是全局变量。各个线程组调用时,只需使用调用jmeter属性的函数“__P”来调用相应的属性即可。

操作过程:

在昨天已经能动态获取到token的基础上,在登录接口下再添加一个Bean Shell PostProcessor 的后置处理器 :

Jmeter接口测试——跨线程组调用参数(token为例)

Parametres:就是之前获取token时设置的变量名。

Script:就是把Bean Shell PostProcessor接收到的参数值,赋值给某参数,0是第一个值。调用函数__setProperty,把Bean Shell PostProcessor中的参数token的值赋值给loginToken,并设置loginToken为jmeter内置属性。loginToken是自定义的变量名。

String token = bsh.args[0];
log.info("token:" + token);
${__setProperty(loginToken,${token},)};

Jmeter接口测试——跨线程组调用参数(token为例)

登录接口这个线程组就设置好了,其他线程组要调用token值的话直接用“__P”函数调用。

可以在其他线程组下添加一个HTTP Header Manager, http header manager设置如下:

Jmeter接口测试——跨线程组调用参数(token为例)

以上都设置完后基本上就可以了,还要注意的一个就是线程组执行顺序问题,把获取token的这个线程组放在第一位,在Test Plan里把下面这一项前面勾上:

Jmeter接口测试——跨线程组调用参数(token为例)

好了(*^▽^*)~