Jmeter正则表达式提取器备用选项

时间:2019-01-11 21:49:10

标签: regex jmeter response-headers

我正在尝试从响应标头中提取会话ID的值,除了在jemeter中使用lookbehind之外,还有其他方法吗? 我在regexformatter中验证了我的正则表达式,并按预期工作,但由于jmeter不支持向后看,因此该解决方案不适用于我。

响应头:

Expires: 0
X-Frame-Options: DENY
x-session-id: 1a5e099f-5234-4
X-Application-Context: test:8080

使用的正则表达式为:

  (?<=x-session-id: ).{0,16}

有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

Regular Expression Extractor配置应为以下配置:

Regular Expression Extractor configuration

正则表达式:

  

x-session-id:(。*)

答案 1 :(得分:1)

根据Regular ExpressionsJMeter User Manual章:

  

请注意,<http auto-config="true"> <csrf disabled="true"/> <intercept-url pattern="/admin/**" access="hasRole('ADMIN')" /> <intercept-url pattern="/admin/**" access="hasRole('ADMIN')" /> <form-login login-page="/loginform" authentication-failure-url="/loginform?error=true" /> <logout logout-url="/logout" logout-success-url="/" /> <access-denied-handler error-page="/403" /> </http> -向后看-不支持。

因此您可以使用类似(?<=regexp)的东西,它应该可以正常工作:

enter image description here

更多信息:Using Regular Expressions to Extract Tokens and Session IDs to Variables

答案 2 :(得分:0)

假定会话ID中的最后一个字符为数字。然后,您可以使用以下内容。如果您认为会话ID中的第二个组将是数字,则将第二个\w+替换为\d+,它将达到目的。让我知道您是否认为其他数据集可能会使此正则表达式失败。

正则表达式: (?:\w+-\w+-\d+)

好像您对Regex有所了解,所以不提解释了。让我知道这是否不适合您。我将尝试提出另一种方法,但在这种情况下,请提供更多数据集。祝你好运。