jmeter - 多个令牌提取

时间:2017-01-03 10:15:51

标签: authentication jmeter

在应用程序中我测试用户登录后更改了真实性令牌 - 所以我必须提取令牌两次(登录时一次,登录后第二次)。我使用正则表达式提取器。

第一次(登录时)它运行正常。

第二次(登录后)它不会提取新令牌 - 后续POST正在发送给定的参考名称(来自正则表达式提取器)而不是提取的令牌。

我在两个提取器中使用不同的引用名称。两个页面都具有相同的源,并且令牌以相同的方式定义:

<meta content="authenticity_token" name="csrf-param" />
<meta content="g/bsiegqqexUreoJdRbogKSpw6ZJ7O86fEUPESolrpc=" name="csrf token" />

所以我在两种情况下使用相同的正则表达式:

name="authenticity_token".*value="(.+)"

但是,正如我所说,它仅适用于第一个令牌。

任何帮助表示感谢并提前致谢

1 个答案:

答案 0 :(得分:1)

简单don't use regular expressions to parse HTML。响应,换行符,空格,属性顺序更改等任何轻微的标记更改都没有得到任何结果。

您有两个非常漂亮的PostProcessor,用于处理HTML响应类型:

  1. CSS/JQuery Extractor

    相关配置如下:

    • CSS / JQuery Expression:meta[name=csrf token]
    • 属性名称:content
  2. XPath Extractor

    • XPath查询类似于://meta[@name='csrf token']/@content
    • 如果您的回复不符合XHTML,则可能需要勾选Use Tidy (tolerant parser)