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