JMeter,正则表达式提取器

时间:2018-10-12 19:03:15

标签: regex jmeter

我很难在Jmeter中使用“ Regex Expression Extractor”来实现以下目的:

响应标题类似于:

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

我尝试了上述配置,而extract_token变量始终为“ ERROR”

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

extracted_id_token=null
extracted_id_token_g=0
extracted_id_token_g0=Token=

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

2 个答案:

答案 0 :(得分:1)

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

Boundary Extractor configuration

如果您仍然想要Regular Expression Extractor

Regular Expression Extractor configuration

答案 1 :(得分:0)

您要提取的“响应标头”基本上是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