【问题标题】:jmeter - multiple token extractionsjmeter - 多个令牌提取
【发布时间】:2017-01-03 19:59:35
【问题描述】:

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

第一次(登录期间)它工作正常。

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

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

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

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

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

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

任何帮助表示赞赏并提前感谢

【问题讨论】:

  • 您能否分享测试计划,突出显示两个 RegExExtractors,因为问题不清楚?以及需要从中提取令牌的 HTTP 响应。在问题中,给定的内容和使用的正则表达式不匹配(内容中没有值字段)。

标签: authentication jmeter


【解决方案1】:

只需don't use regular expressions to parse HTML。响应、换行符、空格、属性顺序更改等任何轻微的标记更改,你什么都得不到。

您有两个漂亮的后处理器,专为处理 HTML 响应类型而设计:

  1. CSS/JQuery Extractor

    相关配置如下所示:

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

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

【讨论】:

  • 谢谢!看起来有人必须向我展示明显的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
相关资源
最近更新 更多