我曾计划使用Jmeter Regex Extractor在HTTP响应标头中获取会话ID。这是HTTP标头的示例:
HTTP/1.1 200 OK
x-powered-by: yoke
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST,GET,DELETE,PUT
Access-Control-Allow-Headers: X-Requested-With,jsessionid,Origin,Accept,Content-Type
Access-Control-Expose-Headers: Content-Size,Message,Total-Pages,Total-Count,Current-Page,jsessionid,Origin,Total-Outstanding,Content-Range
content-type: application/json
jsessionid: 10838d69-f9ac-4c70-b1f7-9447a7a6a463
Content-Length: 106
我需要得到的是:
10838d69-f9ac-4c70-b1f7-9447a7a6a463
我使用此REGEX:
jsessionid: [^\n]+
但我明白了:
jsessionid: 10838d69-f9ac-4c70-b1f7-9447a7a6a463
你可以帮帮我吗?
谢谢
最诚挚的问候, Stefio
答案 0 :(得分:1)
查看lookaround
的正则表达式,对于你的特殊情况,它应该是正面的正则表达式。这种工作非常有效,但未经测试:
(?<=jsessionid:\s).+
(?<=jsessionid:\s)
部分意味着匹配jsessionid:
但不包含在结果中
答案 1 :(得分:0)
使用正则表达式
jsessionid: ([^\n]+)
和模板
$1$
您的问题与正则表达式分组有关。组0是整个匹配,这是Jmeter Regex Extractor的默认值。第1组是第一组括号内的正则表达式匹配的。模板$ 1 $表示使用组1的内容作为结果。正则表达式分组可能会变得复杂得多,因此如果要从正则表达式中获取多个值,请阅读教程。 Jmeter Regex Extractor user manual
答案 2 :(得分:0)
JSESSIONID基本上是一个cookie,所以我认为你不需要用正则表达式来提取它。
我可以想到你可能需要它的2个场景:
在这两种情况下,您都可以使用HTTP Cookie Manager
CookieManager.save.cookies
属性设置为true
,您应该能够以${COOKIE_JSESSIONID}