jmeter设置跨线程设置

Posted SunShine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter设置跨线程设置相关的知识,希望对你有一定的参考价值。

  1. BeanShell 后置处理程序
  2. __setProperty(gs,$goodsid); //将局部变量转为全局变量__setProperty(tk,$token_id); //将局部变量转为全局变量
  3. 给到另一个线程组的变量使用
goodsId $

jmeter跨线程组传递token

遇到一些综合场景的设置,每个不同的请求并发数设置不同的时候,可以用多个线程组的组合来实现,但是这个时候,会遇到一个问题,那就是jmeter各个线程组之间是相互独立的,各个线程互不影响,所以线程组A中输出的参数,无法直接在线程组B中调用。

拿token来说,虽然每一个线程组中我们也可以在放一个登录请求,然后输出一个token供此线程组使用,但这样就比较繁琐且冗余。此时我们就可以使用跨线程组传递参数来解决这样的问题。

接下来,我们看下这个例子:

要发送短信,必须要先登录,才能发送。

实现思路:

在登录请求中添加一个正则表达式提取器,提取响应值中的token的值。然后再添加一个 Bean Shell PostProcessor 的后置处理器,在这个处理器中调用“__setProperty”函数,设置正则提取到的token的值为全局变量。然后在另外一个线程组中添加一个其他需要用到此token的请求,通过函数“__P”来调用token。

具体步骤:

1、在测试计划下添加一个线程组setUp Thread Group,然后把登录请求添加到该线程下,在登录请求下添加正则表达式提取器和BeanShell PostProcessor

 

 技术图片

 

 注意,BeanShell PostProcessor中参数和脚本设置。在Script中输入${__setProperty(jsessionid,${token},)}

技术图片

 

 2、再添加一个线程组,把发短信的请求,添加在该线程组下面。在这个线程组下添加HTTP Cookie 管理器,调用上面的线程组的Token.

技术图片

 

 至此,跨线程组的参数调用就实现了。

技术图片

 

以上是关于jmeter设置跨线程设置的主要内容,如果未能解决你的问题,请参考以下文章

关于jmeter中跨线程组?变量值传递的方法

jmeter跨线程组获取cookie或jmeter线程组共享cookie-笔者亲测

JMeter:全局变量___setProperty跨线程传参

Jmeter — 跨线程组传递参数

jmeter 跨线程组调用变量

在Jmeter中设置全局变量,实现跨线程组传参