我一直在使用BlazeMeter插件录制的脚本,我想这是我收到成功登录请求,在另一个请求使用访问令牌。我的测试计划看起来像如下
Thread Group : [A]
|- HTTP Sampler - Login Page
|-Regular Expression Extractor [getToken]
|-HTTP Sampler - Other Page
|-Beanshell PreProcessor[Set Header in Authorization]
Variable Name : token
Regular Expression : {“access_token”:”(.+?)"
Template : $1$
Match No. : 0
import org.apache.jmeter.protocol.http.control.Header;
log.info("Start");
sampler.getHeaderManager().add(new Header("Authorization","Bearer"+vars.get("token")));
log.info(vars.get("token"));
token
变量真的有使用Debug Sampler and View Results Tree listener组合的预期值。还检查了jmeter.log file任何可疑项,如果你的BeanShell脚本失败 - 原因将在那里打印。Login Page
的响应数据似乎JSON因此是很有意义的使用JSON Extractor而不是正则表达式提取的。它允许使用JSON Path language为了提取的响应数据的“有趣”位。在你的情况下,相关的JSON路径表达式会$.access_token
您可以添加调试取样,并尝试首先要确认你的正则表达式提取器工作正常?它应该提供您token
的要求值。
如果您token
具有所需的价值,我会建议你用鼠标右键单击HTTP取样器添加HTTP Header Manager
config元素
HTTP Request => Add => Config Element => HTTP Header Manager
请注意: - 您没有提供任何空间/连字符( - )或关键字熊和令牌之间。
请参考以下链接了解详细信息: - https://stackoverflow.com/a/24550552/1115090