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

在开发高级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)} 如下所示直接访问此变量:

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

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

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

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

转载于:https://blog.51cto.com/14126611/2329391

线程组之间的JMeter传递变量相关推荐

  1. jmeter解决不同线程组之间传递参数问题

    jmeter解决不同线程组之间传递参数问题 参考文章: (1)jmeter解决不同线程组之间传递参数问题 (2)https://www.cnblogs.com/yingchen/p/5110335.h ...

  2. Jmeter之Bean shell使用(四)——跨线程组之间的全局参数传递

    使用场景: 请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口. 所以我想要把授权操作放在单独的一个线程,业务流放在其他线程. 这就需要我把从授权线程获取的令牌传入业务流 ...

  3. jmeter多用户登录跨线程组操作传值

    项目需求: 需要登录两个用户A.B,用户A操作完后会通知B,然后B再操作,B操作完结束或者再通知A. 实现思路: 1. 设置两个线程组Ⅰ.Ⅱ,组Ⅰ添加cookie管理器,里面添加用户A的操作:组Ⅱ添加 ...

  4. jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

  5. jmeter debug sample不在查看结果树中显示_Jmeter线程组间传递参数

    现在做测试和以前不太一样了,以前只要站在一个用户的角度做端到端的UI测试就可以了,现在不会做接口测试,出去都不好意思和别人打招呼.那提到接口测试,就不得不提一下接口测试利器Jmeter,大家也都知道, ...

  6. Jmeter线程组间传递参数

    现在做测试和以前不太一样了,以前只要站在一个用户的角度做端到端的UI测试就可以了,现在不会做接口测试,出去都不好意思和别人打招呼.那提到接口测试,就不得不提一下接口测试利器Jmeter,大家也都知道, ...

  7. Jmeter跨线程组传递参数

    jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B和线程组C中被调用的. 但是有时为了方便管理,我们可能是把各个接口单独存放在不同的线程组中.拿t ...

  8. JMeter中如何实现跨线程组关联

    在做压力测试的时候常常会遇见一个场景,想要测试的接口需要登录接口返回的token做参数,或者需要其它接口的认证信息,通常能想到的就是正则表达式提取器,把需要的参数提取出来,传递到另一个HTTP请求中. ...

  9. jmeter跨线程组传值

    在测试过程中,有时候需要jmeter跨线程组传值,jmeter本身又不具备此功能,那么,又该如何实现呢? 其实,我们可以通过BeanShell去实现. 实现过程如下: 1.线程组A中,使用正则表达式提 ...

最新文章

  1. 295. 数据流的中位数
  2. JQuery图表插件之Flot
  3. C#中Trim()、TrimStart()、TrimEnd()的错误认识
  4. android studio编辑不了,无法在Android Studio中编辑文件
  5. 20分钟打造你的Bootstrap站点
  6. js练习--贪吃蛇(转)
  7. Cinemachine教程 | Unity中如何制作路径动画?
  8. 推荐5大开源工具,用于开发Kubernetes项目
  9. 分布式监控系统Zabbix--使用Grafana进行图形展示
  10. Postman的使用说明
  11. 标准C字符和字符串函数
  12. 编程基础(五)—— 虚拟内存
  13. ubuntu phpmyadmin 404 not found
  14. Mysql(二)Mysql SQL练习题
  15. 前端js如何实现中文转拼音(重要)
  16. Elasticsearch优化的一些建议
  17. 税收学考试可以带计算机吗,税务师考试能带计算器和草纸吗?简答题需要用笔吗?...
  18. 【网络】如何扫描局域网内所有设备的ip和mac地址
  19. 从自动驾驶事故中探索有效的性能提升及判责策略
  20. 从炒房现象反思当前中国投资环境

热门文章

  1. 计算机表格收入水平怎么算,怎么用excel计算工资所得税
  2. 结果显示窗口如何缩小_Proe草绘时提示“截面再生失败。不合适的尺寸”如何处理?...
  3. linux显卡内核修改,iTOP-4412开发板-驱动-linux显卡驱动的修改方法
  4. leetcode300 最长上升子序列
  5. 单调队列优化的背包问题
  6. STL源码剖析 heap堆结构
  7. 虚拟机下Ubuntu配置IP地址和网段
  8. Android 网络异常
  9. 安装OpenCL和AMD驱动程序
  10. 研究:多感官教学增强记忆 学习效率事半功倍