我在jmeter中的响应断言中使用regexp时遇到问题,正如在正则表达式提取器中使用的那样。这是我遇到问题的一个例子
正则表达式提取器 - 从JSON响应中提取sessionId “sessionId”:“([^”] +)“,用于提取”“和当前有效的值之间的值。
响应断言中使用的相同正则表达式不起作用。
一般来说,我需要它的regexp,它在引用之间提取值,以便在Response断言中使用
修改
似乎我没有清楚地解释这个问题,我的不好
所以,这里是 - 可以使用regexp作为响应断言,如“sessionId”:“([^”] +)“,这意味着我只关心”sessionId“:”somevalue different null“如果是的,正则表达式应该是什么样的
由于
答案 0 :(得分:3)
Response Assertion允许您为Contains, Matches
选项编写perl样式正则表达式。
Contains
- 部分匹配
Matches
- 完全匹配
尝试以下正则表达式:
"sessionid":".*?"
如果特殊字符需要转义,请使用\
进行转义,如下所示。
\"sessionid\":\".*?\"
在正则表达式中查看空格。
参考:
答案 1 :(得分:3)
我没有看到你如何在响应断言中使用正则表达式,因为你应该有某种形式的“预期结果”。
鉴于您能够将sessionId提取到JMeter变量,即 $ {sessionId} ,您应该可以使用Response Assertion通过以下方式检查它是否为空简单的配置:
如果您的正则表达式与任何内容都不匹配,相关的采样器将失败并显示Response was null
消息:
有关使用JMeter断言根据各种条件有条件地失败您的请求的全面信息,请参阅How to Use JMeter Assertions in Three Easy Steps文章
答案 2 :(得分:0)
在响应断言中只需编写$ {referenceName},其中referenceName =使用正则表达式提取的值的变量名。