Jmeter不同线程组之间的变量引用

  用过LoadRunner的小伙伴应该知道,它的脚本主要分为三个部分,即Login,Action,End三个模块。Login中一般是“初始化”环境所用,而Action模块主要做一些诸如压测的动作。举个例子,对计算的一个单接口进行性能测试。如果你把登录和计算都写在Action模块中,那么压测的时候其实把登录也算进去了,这是与业务场景不符的。所以我们要把压测的业务场景单独抽出来,而登录这些操作作为前置数据准备。那用Jmeter创建三个线程组不就行了?不行,因为Jmeter线程组的执行顺序默认是并行的。

  对于上述问题,解决方法有两个:(以下的例子中,都是取登录后的Token)

一、BeanShell Sampler

1.添加线程组"登录",线程组“计算五险一金”,添加请求“login”,添加正则表达提取器

然后添加一个BeanShell Sampler,把拿到的token设置成全局变量,${__setProperty(token,${token},)}。 

在“五险一金”线程组中通过函数调用。调用方式:${__property(token)}

 

二、Beanshell PostProcessor

  我百度了一下,这种方式是有坑的。因为很多教程都没写一个关键点——登录线程组必须使用setUp Thread Group(划重点)。

1.步骤和上述差不多一致,不同的是添加BeanShell PostProcessor,而不是Sampler,看图。

代码如下:

String token=bsh.args[0];

${__setProperty(new_token,${token},)}

在“五险一金”线程中的引用是这样的:${__property(new_token,)}

 

2.如果我们不用setUp Thread Group呢,来看看效果。

 

转载于:https://www.cnblogs.com/zichuan/p/9099766.html

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值