jmeter 线程间参数的传递

背景

最近做项目性能测试的时候,遇到了一个问题,就是测试的接口需要用到其他接口返回值,作为输入参数,比如cookie值和token值,还要一些其他的值。测试场景是20个人5秒内启动,之前的做法是把所有的接口放到一个线程组里面,导致的结果就是还没有走到要测试的接口,这个接口上面的依赖的接口就都挂了。

问题

怎么样才能做到其他接口 不挂,只要设置需要测试的接口 20 人 5秒内启动就可以了。

想到的解决问题就是,使用jmeter的setup 线程组,然后利用 把需要用到变量设置成全局变量,供后面的线程使用。

主要提取的有token值,cookie和上个接口返回的值。

1和3,其实很好解决,用正则表达式或者jason提取器提取后,设置成全局变量。主要是cookie怎么解决呢?线程组之间如何共享cookie?于是百度到了一个案例:https://blog.csdn.net/yuxuan6699/article/details/97889930,参考了该篇博客,我调通了单个线程的,他这个只适合单个用户的,但是多个用户就不适用了,因为setup设置为20人,cookie 最后取的是最后一个用户的值,这样下面的主线程,再设置20 人,就只能有一个会成功,其他都会是失败的(也不一定?只要caseid 不一样就可以了?用一个cookie 有可能是对的,变的可以单独提出来)。

升级:

我需要把配置参数的cookie 管理器,放到主线程中,然后其他的前置接口都放到setup线程组中,然后用一个cookie 管理器单独管理,

多用户,setup线程组和主线程都需要 设置计数器,setup设置计数器是为了 区别 不同的用户初始化后的变量。主线程是为了 获取 上面初始化的参数,不同的用户获取不同的参数,这样可以避免获取到重复的值。

cookie 获取样例:

其他资料:

jmeter 线程组的执行顺序

https://blog.csdn.net/liletong12_28/article/details/100915970

jmeter 设置全局变量:

https://blog.csdn.net/ezreal_tao/article/details/85166799

jmeter 其他支持

${__V(token_${id})} 获取token_1 token_2 的值,非全局变量

全局变量 ${__P(token_${id})}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值