jmeter 全局变量的设置

文章详细介绍了如何在浏览器登录过程中,通过HTTP请求获取token,然后使用JSON提取器提取,并在Beanshell后置处理程序中设置为全局变量,以便后续请求直接引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例:浏览器登录将token设置为全局变量

 

1、设置http登录请求

 

2、设置json提取器

 

3、设置beanshell后置处理程序

 4、登录时直接引用即可

 

### 如何在 JMeter 中定义和使用全局变量 #### 使用 `User Defined Variables` 设置全局变量 为了使变量可以在整个测试计划中访问,可在 **Test Plan** 或者 **Thread Group** 上方添加 `User Defined Variables` 元素来定义这些全局变量[^3]。 ```properties variable_name=global_value server_ip=192.168.1.1 port_number=8080 ``` 当通过这种方式设置全局变量之后,所有线程组都可以读取并利用这些值。这非常适合用于存储像服务器 IP 地址、端口号或者其他任何需要跨多个请求共享的数据项。 #### 利用 Beanshell 脚本操作全局变量 除了静态配置外,还可以借助于Beanshell Sampler或Pre/Post Processor动态创建和修改全局属性: - 存储全局变量:`props.put("property_name", "value");` - 获取全局变量:`${__P(property_name,)}` 或者在Beanshell里使用 `props.get("property_name")` 方法获取已设定好的全局变量的值[^1]。 例如,在一个Beanshell脚本中设置名为 `testProperty` 的全局变量如下所示: ```java // Set a global property named 'testProperty' props.put("testProperty", "This is a test value"); ``` 而在另一个地方想要取得该全局变量,则可以通过下面的方式实现: ```java String propValue = props.get("testProperty").toString(); log.info(propValue); ``` 需要注意的是,这里使用的 `props` 对象代表的就是JMeter Properties集合,它允许不同组件之间交换数据而不局限于单一线程范围内。 #### 测试片段展示如何应用全局变量 假设有一个HTTP Request sampler 需要发送到特定主机上的API调用,此时就可以把之前提到过的IP地址作为全局变量传入URL字段中去构建完整的请求路径。 ```http http://${server_ip}:${port_number}/api/resource ``` 这样做的好处在于一旦目标服务迁移至新的位置时只需更改一处即可完成更新工作而无需逐一手动调整每一个依赖于此信息的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值