【问题标题】:JMeter, Regular Expression ExtractorJMeter,正则表达式提取器
【发布时间】:2018-10-12 19:03:14
【问题描述】:

我很难让“正则表达式提取器”在 Jmeter 中为以下各项工作:

响应标头类似于:

Set-Cookie: Token=dfrtydgsdttetert; Domain=.domain.ca; Path=/; 
Expires=Fri, 19 Oct 2018 18:54:18 GMT; Secure
ETag: W/"41c-gdf+/mzdw"

在 JMeter 正则表达式提取器中:

Apply to: main sample and sub-samples
Field to check "Response Header"
Name of create Variable: extracted_token
Regular Expression: (?<=Token=)(.*)(?=; Domain)    <- the goal is 
the get the string "dfrtydgsdttetert"
Template: $1$
Match No: 1
Default Value: ERROR

我试过上面的配置,extracted_token变量总是“ERROR”

如果我将正则表达式更改为 Token= 然后我得到:

extracted_id_token=null
extracted_id_token_g=0
extracted_id_token_g0=Token=

请指导我如何修复我的配置,以便我可以在响应标头中检索“dfrtydgsdttetert”。

【问题讨论】:

  • 试试Token=(.*?); Domain,或Token=([^;]+);\s*Domain
  • 谢谢!我试过你的正则表达式,它也能正常工作!

标签: regex jmeter


【解决方案1】:

要执行此提取,最有效的方法是使用Boundary Extractor

如果你还想要Regular Expression Extractor:

【讨论】:

  • 感谢您指导我使用“边界提取器”。它就像一个魅力。还要感谢您提供两种解决方案的屏幕截图!
  • 很高兴我提供了帮助 :-) 不客气,感谢您的接受和支持
【解决方案2】:

您尝试提取的“响应标头”基本上是HTTP Cookie,JMeter 通过HTTP Cookie Manager 自动处理 cookie,因此您只需将其添加到您的测试计划中,这将比手动提取更方便Set-Cookie 标头中的值并将它们添加到 Cookie 标头。

如果您出于其他原因需要 cookie 值,您可以从 HTTP Cookie 管理器本身获取它

  1. 将下一行添加到 user.properties 文件(位于 JMeter 安装的“bin”文件夹中)

    CookieManager.save.cookies=true
    
  2. 重新启动 JMeter 以获取属性(更改将是永久性的)
  3. 将 HTTP Cookie 管理器添加到您的测试计划中
  4. 就是这样,现在您可以在需要时将您的Token cookie 值引用为${COOKIE_Token},无需从标题中提取它。

更多信息:HTTP Cookie Manager Advanced Usage - A Guide

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多