Ben*_*ett 26 jmeter http-headers
我正在尝试使用JMeter测试HTTP服务.HTTP服务需要通过简单的承载令牌机制进行身份验证.我正在尝试按如下方式进行:
到目前为止,我已经能够发布请求,获取令牌,使用正则表达式提取它,将其保存到变量,并声明变量已正确设置.
问题是将变量放入HTTP标头.在"标题管理器"中,值设置如下:

不幸的是,当发出下一个请求时,它们的授权标题具有值"Bearer".在互联网上搜索让我相信在线程开始之前配置了标题,这可以解释"持票人"
我的采样/分组/嵌套如下:

由于授权标头格式错误,因此所有测试都会通过以获取受限资源,但资源失败并且失败了400.
我觉得我错过了一些非常明显的东西,并且/或者以错误的方式解决了这个问题.
Dmi*_*i T 32
2017年8月编辑:
您可以使用Beanshell PreProcessor动态构建授权标头,如下所示:
使用以下代码将Beanshell PreProcessor作为同一请求的子项添加:
import org.apache.jmeter.protocol.http.control.Header;
sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("BEARER")));
Run Code Online (Sandbox Code Playgroud)这将使用BEARER变量构造完全动态的头.
sampler是HTTPSamplerProxy类的简写,它提供对父Sampler实例的访问vars是JMeterVariables类的实例,它允许对当前上下文(通常是当前的Thread Group)边界内可用的所有JMeter变量进行读/写访问有关Beanshell脚本和Beanshell菜谱的详细信息,请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南.
Ed *_*ves 12
请参阅此论坛帖子:http://www.jmeter-archive.org/Variables-in-HTTP-headers-td4579331.html
您需要在控制器下移动登录.就我而言,我使用了Only Once Controller.然后在控制器之后,您可以添加带有Authorization标头的HTTP标头管理器作为"Bearer $ {BEARER}",它将读取您的变量.这比其他答案更好,因为那样您就不需要在每个请求下复制BeanShell PreProcessor.我的树看起来像这样:
| 归档时间: |
|
| 查看次数: |
31076 次 |
| 最近记录: |