Jmeter - $出现在字符串中断响应断言

时间:2017-02-22 15:06:23

标签: json jmeter

运行一些测试,我们需要验证$出现在字符串中不会破坏服务(手动测试它,它工作正常!)。

将测试转换为通过Jmeter运行,包括$的测试都失败了。

测试是结构化的(并且道歉无法发布此屏幕截图,但它都在安全系统上):

    Http Request to service
      JSON Extractor (returning ValueX from json)
      Response Assertion (comparing ValueX to ValueY)
          Response Field to Test = Response Message
          Pattern Matching Rules = Contains

ValueX和ValueY的示例:

ValueX = ["012345","012456","EDB$DE"]
ValueY = "012345","012456","EDB$DE"

我正在使用包含模式匹配,所以在我看来,上面的两个值应该匹配,除非我误解了一些东西。

Jmeter是否可能误解结果中的$以表示新变量?

任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:2)

根据How to Use JMeter Assertions in Three Easy Steps

  

模式可以是:

     
      
  1. “等于”或“子串”子句的“字符串”
  2.   
  3. “包含”或“匹配”子句的“Perl5风格”正则表达式
  4.   

根据JMeter's Regular Expressions用户手册章节:

  

多行模式仅影响解释元字符' ^' ' $' 的方式。

所以你有两个选择:

  1. 如果您要继续使用"包含"模式匹配规则您将需要使用反斜杠转义$元字符,如:

    EDB\$DE
    
  2. 或者你可以切换到" Equals"模式匹配规则,在这种情况下,您可以按原样保留EDB$DE模式