news 2026/6/9 18:44:28

线程组之间的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/6/9 5:56:33

Operating Karon: A Calm Admin Log for Repair Shop Websites

Karon in Production: Fixing a Car Service Site’s Booking Flow I rebuilt this car repair shop website because the old one created friction at the exact moment visitors wanted reassurance. People don’t visit a repair shop site to “browse.” They visit be…

作者头像 李华
网站建设 2026/6/6 16:46:47

vue3使用h函数如何封装组件和$attrs和props的区别

,插槽如何穿透3,暴露实例以及实例中的方法在vue3中的$attrs的变化vue3中$listeners已被删除合并到$attrs中。vue3的$attrs现在包括class和style属性。vue2中不包含class和style属性。也就是说:当子组件写上 v-bind"$attrs"父组件就…

作者头像 李华
网站建设 2026/6/6 2:46:36

SOP实时侦测系统

上图先 # -*- coding: utf-8 -*- import cv2 import mediapipe as mp import numpy as np import time import sys import os import tempfile import subprocess# 解决中文显示问题 - 使用Pillow确保中文正确显示 def cv2_puttext_chinese(img, text, position, font_scale,…

作者头像 李华
网站建设 2026/6/9 8:26:37

【Android】基于SurfaceControlViewHost实现跨进程渲染

1 前言 ​ 本文将介绍基于 SurfaceControlViewHost 实现跨进程渲染普通 View 和 GlSurfaceView,力求用最简单的 Demo,介绍 SurfaceControlViewHost 的应用,方便读者轻松扣出核心代码应用到自己的业务中。 ​ 核心代码片段如下。 ​ 1&#x…

作者头像 李华