news 2026/5/1 5:04:22

线程组之间的JMeter传递变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线程组之间的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} 如下所示直接访问它:

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:44:55

一次性搞定多任务!Python自动化复用浏览器技巧大揭秘

复用浏览器 简介 在 Web 自动化测试中,浏览器复用是指将已打开的浏览器实例用于多个测试用例。这可以显著提高测试效率和性能,并减少资源消耗。浏览器复用通常与浏览器驱动程序(如 Selenium WebDriver)一起使用,以便…

作者头像 李华
网站建设 2026/4/24 18:43:39

如何将相册装修成美团风格?看这里!

🙋有小伙伴反馈:相册布局能否装修成像美团店铺那样?也就是顶部有一个商家信息卡片,下面就是左右两级分类,这样简洁明了,方便客户快速找款看款 👌包的💯支持的 ⬇️下面将介绍如何将相…

作者头像 李华
网站建设 2026/4/25 14:51:22

EmotiVoice官方认证培训课程上线

EmotiVoice官方认证培训课程上线:高表现力多情感语音合成技术深度解析 在智能语音助手越来越“懂你”的今天,我们是否还满足于那种语气平淡、毫无波澜的机械朗读?当AI开始扮演虚拟偶像、游戏NPC甚至心理陪伴者时,“说什么”已经不…

作者头像 李华
网站建设 2026/4/26 16:53:39

解密prompt系列61. 手搓代码沙箱与FastAPI-MCP实战

最近Vibe Code在各种技术社区刷屏,不过说实话,在日常工作中,我更多是用LLM来生成文档、批量修改代码或者排查问题。毕竟业务需求嘛,很少有能一次性描述清楚的(懂的都懂哈哈~)。但在看了最新的SWE-Bench Pro…

作者头像 李华
网站建设 2026/4/29 22:54:07

Kubernetes Deployment:部署与管理应用指南

在上一章节中,介绍了pod,以及介绍了如何使用命令行来创建一个pod。那么问题来了,一般来说,我们部署微服务不可能只部署一个噻,肯定是部署多个,但是我们总不可能说,写一个for循环,启动…

作者头像 李华
网站建设 2026/4/16 13:39:23

基于PLC的城市智能交通灯三路口控制系统设计

摘要 可编程控制器(Programmable Logic Controller)简称PLC。是一种综合了通讯、自动控制和计算机技术发展而来的主要用于工业生产的自动控制系统。PLC运用数字运算操作系统,采用可编程序存储器,来于储存内部程序。执行逻辑运算、定时控制、顺序控制、计…

作者头像 李华