Jmeter响应断言正则表达式

时间:2017-02-06 14:12:03

标签: regex jmeter

我在jmeter中的响应断言中使用regexp时遇到问题,正如在正则表达式提取器中使用的那样。这是我遇到问题的一个例子

正则表达式提取器 - 从JSON响应中提取sessionId “sessionId”:“([^”] +)“,用于提取”“和当前有效的值之间的值。

响应断言中使用的相同正则表达式不起作用。

一般来说,我需要它的regexp,它在引用之间提取值,以便在Response断言中使用

修改

似乎我没有清楚地解释这个问题,我的不好

所以,这里是 - 可以使用regexp作为响应断言,如“sessionId”:“([^”] +)“,这意味着我只关心”sessionId“:”somevalue different null“如果是的,正则表达式应该是什么样的

由于

3 个答案:

答案 0 :(得分:3)

Response Assertion允许您为Contains, Matches选项编写perl样式正则表达式。

Contains - 部分匹配 Matches - 完全匹配

尝试以下正则表达式:

"sessionid":".*?"

如果特殊字符需要转义,请使用\进行转义,如下所示。

\"sessionid\":\".*?\"

在正则表达式中查看空格。

参考:

  1. http://jmeter.apache.org/usermanual/component_reference.html#Response_Assertion

答案 1 :(得分:3)

我没有看到你如何在响应断言中使用正则表达式,因为你应该有某种形式的“预期结果”。

鉴于您能够将sessionId提取到JMeter变量,即 $ {sessionId} ,您应该可以使用Response Assertion通过以下方式检查它是否为空简单的配置:

  • 将Response Assertion的“Apply to”字段设置为“JMeter Variable”,并将变量引用名称设置为sessionId

    JMeter Response Assertion Variable

如果您的正则表达式与任何内容都不匹配,相关的采样器将失败并显示Response was null消息:

JMeter Variable Assertion Null

有关使用JMeter断言根据各种条件有条件地失败您的请求的全面信息,请参阅How to Use JMeter Assertions in Three Easy Steps文章

答案 2 :(得分:0)

在响应断言中只需编写$ {referenceName},其中referenceName =使用正则表达式提取的值的变量名。