线程组之间的JMeter传递变量
下面,我们将看看如何在线程组之间共享和传递变量。
在开发高级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传递变量相关推荐
- jmeter解决不同线程组之间传递参数问题
jmeter解决不同线程组之间传递参数问题 参考文章: (1)jmeter解决不同线程组之间传递参数问题 (2)https://www.cnblogs.com/yingchen/p/5110335.h ...
- Jmeter之Bean shell使用(四)——跨线程组之间的全局参数传递
使用场景: 请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口. 所以我想要把授权操作放在单独的一个线程,业务流放在其他线程. 这就需要我把从授权线程获取的令牌传入业务流 ...
- jmeter多用户登录跨线程组操作传值
项目需求: 需要登录两个用户A.B,用户A操作完后会通知B,然后B再操作,B操作完结束或者再通知A. 实现思路: 1. 设置两个线程组Ⅰ.Ⅱ,组Ⅰ添加cookie管理器,里面添加用户A的操作:组Ⅱ添加 ...
- jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- jmeter debug sample不在查看结果树中显示_Jmeter线程组间传递参数
现在做测试和以前不太一样了,以前只要站在一个用户的角度做端到端的UI测试就可以了,现在不会做接口测试,出去都不好意思和别人打招呼.那提到接口测试,就不得不提一下接口测试利器Jmeter,大家也都知道, ...
- Jmeter线程组间传递参数
现在做测试和以前不太一样了,以前只要站在一个用户的角度做端到端的UI测试就可以了,现在不会做接口测试,出去都不好意思和别人打招呼.那提到接口测试,就不得不提一下接口测试利器Jmeter,大家也都知道, ...
- Jmeter跨线程组传递参数
jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B和线程组C中被调用的. 但是有时为了方便管理,我们可能是把各个接口单独存放在不同的线程组中.拿t ...
- JMeter中如何实现跨线程组关联
在做压力测试的时候常常会遇见一个场景,想要测试的接口需要登录接口返回的token做参数,或者需要其它接口的认证信息,通常能想到的就是正则表达式提取器,把需要的参数提取出来,传递到另一个HTTP请求中. ...
- jmeter跨线程组传值
在测试过程中,有时候需要jmeter跨线程组传值,jmeter本身又不具备此功能,那么,又该如何实现呢? 其实,我们可以通过BeanShell去实现. 实现过程如下: 1.线程组A中,使用正则表达式提 ...
最新文章
- 295. 数据流的中位数
- JQuery图表插件之Flot
- C#中Trim()、TrimStart()、TrimEnd()的错误认识
- android studio编辑不了,无法在Android Studio中编辑文件
- 20分钟打造你的Bootstrap站点
- js练习--贪吃蛇(转)
- Cinemachine教程 | Unity中如何制作路径动画?
- 推荐5大开源工具,用于开发Kubernetes项目
- 分布式监控系统Zabbix--使用Grafana进行图形展示
- Postman的使用说明
- 标准C字符和字符串函数
- 编程基础(五)—— 虚拟内存
- ubuntu phpmyadmin 404 not found
- Mysql(二)Mysql SQL练习题
- 前端js如何实现中文转拼音(重要)
- Elasticsearch优化的一些建议
- 税收学考试可以带计算机吗,税务师考试能带计算器和草纸吗?简答题需要用笔吗?...
- 【网络】如何扫描局域网内所有设备的ip和mac地址
- 从自动驾驶事故中探索有效的性能提升及判责策略
- 从炒房现象反思当前中国投资环境