我们在jmeter中每个线程组内的变量是可以共享的,但是假如B线程组需要用到A线程组的变量时怎么办?其实我们可以使用系统属性来实现线程组之间进行传值
首先我们新建两个线程组,A线程组是登录操作,登录后会返回token,B线程组是新建项目操作,需要用到A线程组的token进行鉴权,A线程组登录成功后,我们可以通过后置处理器中的json提取器拿到token,提取到的值存放在tk这个变量中
然后我们使用函数助手来设置jmeter属性,如下图所示,输入属性名和属性值点击生成按钮
在A线程组中添加一个调试取样器,名称改为刚才生成的函数名 ${__setProperty(var_tk,${tk},)} 这一点很重要,然后再测试计划中添加一个属性显示,然后运行A线程组,此时查看jmeter属性中就多了一个值,如下图红框所示
然后我们就可以在B线程组中使用这个jmeter属性了,使用方法还是借助函数助手,这里要用到__P函数,${__P(var_tk,)}
然后B线程组请求时使用这个函数就可以获取到A线程组的token变量了
可以看到,我们已经成功的实现了AB线程组之间互相传值了