You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中从第一个请求获取Token并用于第二个请求

在JMeter中实现请求间Token传递(代码方式)

以下是通过代码实现从第一个请求获取Token并传递给第二个请求的完整流程:

1. 构建第一个请求(用于获取Token)

先创建发起认证、返回Token的HTTP请求,示例代码如下:

HTTPSampler httpAuth = new HTTPSampler();
httpAuth.setDomain(baseUrl);
httpAuth.setPort(443);
httpAuth.setPath("/permissions");
httpAuth.setMethod("GET");
httpAuth.setName("HTTP Request One");
httpAuth.setProtocol("https");
httpAuth.setProperty(TestElement.TEST_CLASS, HTTPSampler.class.getName());
httpAuth.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());

2. 添加Token提取器

根据响应数据格式,为第一个请求添加提取器,从响应中抓取Token并保存到JMeter变量(例如auth_token)。以JSON格式响应为例,代码方式添加JSON提取器:

JSONExtractor jsonExtractor = new JSONExtractor();
jsonExtractor.setName("JSON Extractor - Get Token");
jsonExtractor.setRefName("auth_token");
// 替换为实际的Token所在JSON路径
jsonExtractor.setJsonPathExpression("$.data.token");
jsonExtractor.setMatchNumber("1");
// 将提取器关联到第一个请求
httpAuth.addTestElement(jsonExtractor);

3. 构建第二个请求并引用Token

创建后续业务请求,通过${auth_token}引用提取到的Token,通常放在请求头(如Authorization)或请求参数中:

HTTPSampler httpSecond = new HTTPSampler();
httpSecond.setDomain(baseUrl);
httpSecond.setPort(443);
httpSecond.setPath("/api/resource");
httpSecond.setMethod("POST");
httpSecond.setName("HTTP Request Two");
httpSecond.setProtocol("https");

// 添加携带Token的请求头
HeaderManager headerManager = new HeaderManager();
headerManager.add(new Header("Authorization", "Bearer ${auth_token}"));
httpSecond.setHeaderManager(headerManager);

httpSecond.setProperty(TestElement.TEST_CLASS, HTTPSampler.class.getName());
httpSecond.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());

4. 组装测试计划

将上述两个请求添加到线程组,再把线程组加入测试计划,完成整个流程的搭建。

内容的提问来源于stack exchange,提问作者helers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:14:56