美文网首页测试员的那点事我爱编程
线程组之间的JMeter传递变量

线程组之间的JMeter传递变量

作者: 爱码小士 | 来源:发表于2018-11-27 10:47 被阅读2次

下面,我们将看看如何在线程组之间共享和传递变量。

在开发高级JMeter脚本时,很可能您将拥有多个线程组。每个线程组将执行不同的请求。

一个很好的例子是我们需要使用Bearer Tokens对用户进行身份验证。一个线程组执行身份验证并保存令牌。另一个线程组需要访问此令牌并在另一个请求中使用它。

因此,我们需要一种在线程组之间传递变量的机制。

在JMeter中传递线程组之间的变量

对于此示例,我们的测试计划将具有两个线程组。第一个线程组向Web服务发出GET请求。然后,我们使用JSON Extractor插件来解析JSON响应。

使用JSONPath,我们提取特定键的值并将其保存为JMeter变量。

这就是我们的JMeter请求的样子:

上述请求的结果以JSON格式生成以下响应


和我们的JSONPath提取第一个url看起来像

JSONPath查询的值保存为first_url。此变量只能在同一个线程组中访问,我们可以通过使用获取其值${first_url}。现在,我们如何通过其他线程组访问此变量?

答案是用于BeanShell Assertion将变量保存为全局属性。通过这种方式,我们可以在线程组之间传递变量。

要添加BeanShell断言,请右键单击Test Plan> Add> Assertion> BeanShell Assertion

在我们的BeanShell断言中,我们可以输入以下代码

${__setProperty(first_url, ${first_url})};

现在在线程组2中,我们可以使用${__property(first_url)} 如下所示直接访问此变量:

如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣可以175317069,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

或者,我们可以使用BeanShell PreProcessor来操作变量

在BeanShell PreProcessor中,我们可以通过使用来访问从另一个Thread组传入的变量props.get("name_of_variable") 。然后我们可以执行一些String操作并将结果保存为新变量。

在上面的例子中,我们http:// 从Thread Group 1传递的变量中删除了,我们将结果保存为变量host

该变量host 现在是线程组2的本地变量,并使用${host} 如下所示直接访问它:

相关文章

  • Jmeter中不同线程组的参数传递

    Jmeter跨线程组参数传递 引言:Jmeter中再同一个线程组中,参数传递可以使用 ${变量名} 的方式去传递参...

  • 线程组之间的JMeter传递变量

    下面,我们将看看如何在线程组之间共享和传递变量。 在开发高级JMeter脚本时,很可能您将拥有多个线程组。每个线程...

  • Jmeter设置全局变量,跨线程组传递参数

    用Jmeter做性能测试时,一般会涉及到多个线程组。那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用...

  • jmeter属性和变量

    jmeter的属性和变量可以简单理解为编程里面的全局变量和局部变量。属性是全局可见,可以跨线程组传递调用,而变量基...

  • Jmeter-常见问题解答

    1、如何将测试计划中的线程组按顺序进行,一个线程组压完后再进行下一个? 2、变量传递1:线程组内部请求之间的传递,...

  • Jmeter之<配置元件>中变量的添加修改

    环境:Java 8Jmeter 5.1.1 方式一:Jmeter<线程组>的<配置元件>中有<用户定义的变量>一项...

  • jmeter跨线程组传参数

    花了很多时间做jmeter跨线程组传值 步骤: 1、将用户管理线程组中的登陆token值传递到场景模块线程组中的G...

  • 踩坑系列

    1.jmeter线程组间数据传递:beanshell 的 __setProperty 2、mysql修改表结构关键...

  • Jmeter 不同线程组之间共享token

    jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B中被调用的...

  • jmeter跨线程组传值和jmeter跨线程组调用

    Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组。那么如何将A线...

网友评论

    本文标题:线程组之间的JMeter传递变量

    本文链接:https://www.haomeiwen.com/subject/etsbqqtx.html