引用值不随JMeter中的请求头一起发送

引用值不随JMeter中的请求头一起发送,jmeter,Jmeter,我在JMeter中有一个HTTP请求采样器,它发送一个登录请求 我必须从该HTTP请求的响应中获取access\u令牌,该响应必须与第二个HTTP请求采样器的请求头一起发送 登录请求的响应数据如下: {“status”:true,“access_token”:“91KLM68TDMBodfrurarvdMwygW9NR2Shydwitm.91KLM68TDMBodfrurarvdMwygW9NR2Shydwitm.Arvdm_M68-bodfrurarvdMwygW9NR2Shydwitm”}

我在JMeter中有一个HTTP请求采样器,它发送一个登录请求

我必须从该HTTP请求的响应中获取
access\u令牌
,该响应必须与第二个HTTP请求采样器的请求头一起发送

登录请求的响应数据如下:

{“status”:true,“access_token”:“91KLM68TDMBodfrurarvdMwygW9NR2Shydwitm.91KLM68TDMBodfrurarvdMwygW9NR2Shydwitm.Arvdm_M68-bodfrurarvdMwygW9NR2Shydwitm”}

正则表达式提取器

当我使用View Results Tree->RegExp Test检查此正则表达式时,我得到的结果如下:

比赛计数:1

匹配[1][0]= 访问令牌“:“91KLM68TDMBODFRAURVDMWYGWV9NR2SHYDWIVTM.91KLM68TDMBODFRAURVDMWYGW9NR2SHYDWIVTM.Arvdm_M68-BODFRURVDMWYGW9NR2SHYDWIVTM”

匹配[1][1]= 91KLM68TDMBODFRURVDMWYGWV9NR2SHYDWIVTM.91KLM68TDMBODFRURVDMWYGW9NR2SHYDWIVTM.Arvdm_M68-BODFRURARVDMWYGW9NR2SHYDWIVTM

我需要的是获得匹配的[1][1]。即只有
access\u令牌

在第二个HTTP请求采样器的myHTTP头管理器中引用表达式的值

Name: Authorization
Value : Bearer ${access_token}
现在,当我运行JMeter测试并观察查看结果树时,我可以看到第二个请求的响应是

全局身份验证失败

请求头:

连接:保持活力

问题出现在以下行中:我必须获取
访问\u令牌
值(
91klm68tdmbodfrurarvdmwygw9nr2shydwivtm.91klm68tdmbodfrurarvdmwygw9nr2shydwivtm.Arvdm\u M68-bodfrurarvdmwygw9nr2shydwivtm
),而不是
$访问\u令牌

授权:承载${access_token}

内容类型:application/json

内容长度:21

主机:本地主机

用户代理:Apache HttpClient/4.5.3(Java/1.8.0_111)

如果我没有给出引用令牌,而是在HTTP头管理器中硬编码令牌,则响应成功

注意:我已经检查过了[


如何解决此问题?

很可能是由于额外的空格或换行或其他原因,正则表达式提取器失败

请注意,从Apache JMeter 3.0开始,您就可以使用它从响应类型获取数据。相关的JSON提取器配置如下所示:

有关详细信息,请参阅文章


除此之外,测试计划中的其余元素配置看起来不错。

您的Regex后处理器是否设置了
默认值?如果没有,请添加它。这样您可以确定Regex后处理器是否真的没有找到您的Regex(因此将使用默认值),或者它根本没有运行(因此您仍将看到
${access\u token}
未解析。如果未找到正则表达式,则正则表达式提取器中一定有错误:请检查“应用于”和“字段”以检查字段,确保它们正确无误,或者从头开始重新配置。如果未返回默认值,则表示后处理程序根本未运行。然后,您需要检查采样器返回的内容,是否有其他post-处理器等等on@Kiril感谢您的响应,当我给出一个默认值时,头管理器将采用该默认值,并与第二个HTTP采样器的请求头一起传递:-谢谢您,添加json提取器解决了我的问题:)
Name: Authorization
Value : Bearer ${access_token}