JMeter+提取token变成全局变量

本文介绍了如何使用JMeter进行接口测试,包括设置HTTP请求默认值以简化IP地址输入,登录接口中获取token,通过JSON提取器提取token,并将其设置为全局变量,以便在后续接口请求中使用。最后,通过查看结果树检查测试结果。

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

注:没打码,就代码乱写的接口,具体请按照你要跑的接口来输入值

一、创建线程组

二、配置HTTP请求默认值

IP地址一模一样,可以配置一个默认值,就不用每次都输入IP地址了

 

 

三、配置登陆ip

配置登陆地址,通过返回的data,得到里面的token

 

 返回的值里面有token

 

四、提取token,通过JSON提取器

在登陆接口下,添加后置处理器-》json提取器

 

五、把token作为全局变量,通过HTTP信息头管理器实现

线程组的基础上,添加HTTP信息头管理器

 

 

六、用其他接口看看是否提取token成功

 

七、用查看结果树查看结果

 

 

 

 

 

 

### 如何在 JMeter 中将 Token 设置为全局变量 #### 使用 HTTP 请求和 JSON 提取提取 Token 并将其设置为全局变量 为了实现这一目标,可以通过以下方式完成: 1. **创建线程组** 首先,在测试计划中添加一个新的线程组来模拟用户的登录操作。 2. **配置 HTTP 请求** 在线程组下新增一个 HTTP 请求采样器,用于发送登录请求。确保填写正确的 URL 和 POST 参数[^3]。如果 API 要求特定的内容类型或授权头,则需通过 `Content-Type` 或 `Authorization` 字段指定这些值。 3. **添加 MD5 加密逻辑(如有必要)** 如果密码字段需要加密,可以在 BeanShell PreProcessor 中编写脚本进行处理。例如: ```java import org.apache.commons.codec.digest.DigestUtils; String password = vars.get("password"); String md5Password = DigestUtils.md5Hex(password); vars.put("encrypted_password", md5Password); ``` 4. **使用 JSON 提取器捕获 Token 值** 登录成功后,服务器通常会返回包含 Token 的 JSON 数据结构。此时可利用 JSON 提取器解析响应数据中的 Token 值,并存储到局部变量中。假设返回的数据如下所示: ```json { "data": { "usertoken": "your_token_value" } } ``` 则可在 JSON 提取器中定义路径表达式为 `$..usertoken` 来定位该字段[^4]。 5. **转换局部变量至全局作用域** 局部变量仅限于当前线程可见,因此还需借助 BeanShell PostProcessor 将其提升为全局可用的状态。具体做法是在同一 HTTP 请求之后附加一段代码片段: ```java String localToken = vars.get("local_token"); // 获取由JSON Extractor保存的临时变量名 props.setProperty("global.token", localToken); // 存入属性集合props以便其他线程访问 log.info("Global token set as: " + props.getProperty("global.token")); // 可选日志记录确认赋值情况 ``` 6. **后续调用中引用全局变量** 当前所有线程都可以通过 `${__P(global.token,)}` 动态读取已设定好的全局 Token 值[^1]。注意这里采用的是 Property 函数而非 Variable 类型,因为后者不具备跨线程共享能力。 以上即完成了整个流程的设计与实施过程描述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值