首页 > 编程语言 > 详细

抓破脑壳之(Jmeter)线程组之间的属性无法正常调用

时间:2020-03-28 16:50:49      阅读:56      评论:0      收藏:0      [点我收藏+]

这两天一直被一个问题所困扰,前两天研究了几个小时都没有处理好,颇为难受,下面就来讲讲是怎么回事。

众所周知,Jmeter中的全局变量和局部变量都只能在当前线程组中使用,跨线程是无法调用的,但不是没有办法,通过各种搜索,可以得到结论,有几种跨线程调用的方法,最为方便的一种就是使用函数助手的__setProperty和__P方法,但是当我自己上手使用时,才发现事情并不是那么简单。

操作过程如下:

1、线程组A中登录,提取token

2、将token值传入beanshell后置处理器,配合__setProperty函数传给线程组B要接收的token的参数名(假设为recv-token)

3、线程组B中使用用户参数结合__P函数接收recv_token

首先,这个方法用法没有错,可是,我的线程组B始终无法正确引用线程组A中的属性,结果如下:

技术分享图片

可以看到,线程组B中的属性并未正确调用token的值,我们再来看看调式取样器,

技术分享图片

调试取样器中竟然有token,说明线程组B已经正确拿到了线程组A中登录的token,可是为线程组B中却没有正确使用呢?

经过各种搜索无果后,无意间看到了测试计划中的一个选项,顿时恍然大悟,见下图,

技术分享图片

勾选这个选项后,bingo....,

技术分享图片

终于解决了上面所讲的问题。

原来不勾选这个选项时,测试计划下面的线程组并不是顺序执行完一个再执行一个,而是多线程运行机制,出现上述问题的原因在于线程组A登录后还没有到设置属性这一步时,线程组B的查询余额的请求已经开始发送,所以,线程组A不结束,线程组B是无论如何无法获取到A的属性的。

抓破脑壳之(Jmeter)线程组之间的属性无法正常调用

原文:https://www.cnblogs.com/suanmiaoup/p/12587865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!