我需要从网页中提取CSRF令牌,然后通过BeanShell进行记录。后一部分工作得益于我在this thread中收到的帮助,但现在我需要弄清楚如何让$ {token}填充正确的数据。
注意:我知道正则表达式提取器不是首选方法,但在这种情况下,我必须保持在练习的参数范围内。
首先,我设置了一个HTTP请求来对www.blazedemo.com/register执行GET。
其次,我检查了响应树中显示的响应数据,以找到CSRF令牌:
<!-- CSRF Token -->
<meta name="csrf-token" content="4ZCKKqQgwJH5lT5dQSeAwgeyOr7plAe7IOVRGmQm">
我有一个Regex Extractor设置来抓住它:
如果它没有这样做,我将默认设置为“NOT_FOUND”。
最后,我有一个后处理器记录给$ {token}的任何值。
我在日志中找到以下内容:
2017-10-31 15:12:31,975 INFO o.a.j.u.BeanShellTestElement:令牌 是:NOT_FOUND
答案 0 :(得分:2)
您可以在复选框Response Headers
中选择,这意味着它会在“请求”标题中搜索表达式。
在您搜索HTML标记元的情况下,您需要选择Body
。
答案 1 :(得分:2)
请记住it is not recommended to use regular expressions for parsing HTML,我建议改为CSS/JQuery Extractor。
按如下方式配置:
演示:
更多信息:How to Use the CSS/JQuery Extractor in JMeter
如果您仍想使用正则表达式 - 请更改&#34;字段以检查&#34;到Body
,但是我不建议这样做,因为在解析HTML响应时,正则表达式很难开发和/或支持,并且对任何标记更改都非常敏感,即如果属性顺序发生变化或者属性转到新行,它将破坏您的测试。