遇到一些综合场景的设置,每个不同的请求并发数设置不同的时候,可以用多个线程组的组合来实现,但是这个时候,会遇到一个问题,那就是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.
至此,跨线程组的参数调用就实现了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/185591/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)