使用相关时,响应断言失败,使用RegEx。

时间:2016-02-12 10:53:28

标签: regex jmeter correlation assertion

响应数据: renderData":" {\"注意\":\"测试笔记\",\& #34;颜色\":\" \" \" appHeight \":\" 203px \" \" appWidth \":\" 224px \" \" actionURI \":\" /static/nbapps/notepad/addNote.ejs \&#34 ; \"模式\":\" INLINE \" \" annotationContainerId \":\" ebook_container \&#34 ;, \" pageXOffset \":0}"

正则表达式(它完美无瑕) - renderData: renderData&#34;:&#34;([^}] + pageXOffset。+?})&#34; < / p>

响应断言(文本响应,包含已选中) - $ {renderData}:断言错误:false 断言失败:是的 断言失败消息:测试失败:文本应包含/ {\&#34;注意\&#34;:\&#34;测试注释\&#34;,\&#34;颜色\&#34;: \&#34; \&#34; \&#34; appHeight \&#34;:\&#34; 203px \&#34; \&#34; appWidth \&#34;:\&# 34; 224px \&#34; \&#34; actionURI \&#34;:\&#34; /static/nbapps/notepad/addNote.ejs \&#34; \&#34;模式\& #34;:\&#34; INLINE \&#34; \&#34; annotationContainerId \&#34;:\&#34; ebook_container \&#34; \&#34; pageXOffset \&#34 ;:0} /

为什么断言显示,文本应该包含,当响应中有相同的文本时?

1 个答案:

答案 0 :(得分:1)

根据How to Use JMeter Assertions in Three Easy Steps指南:

  

模式可以是:

     

“Equals”或“Substring”子句的“字符串”

     

“包含”或“匹配”子句的“Perl5风格”正则表达式

鉴于您使用Contains - JMeter将模式视为正则表达式,它不匹配任何内容因此失败。

所以你有以下选择:

  1. 如果您提取了&#34;有趣的&#34;响应位到JMeter变量 - 您可以直接对变量应用断言,按如下方式配置断言:

    • 适用于:JMeter变量 - &gt;正则表达式提取器中的引用名称
    • 模式匹配规则:等于
    • 要测试的模式:添加您的预期值:

      {\"note\":\"test note\",\"color\":\"\",\"appHeight\":\"203px\",\"appWidth\":\"224px\",\"actionURI\":\"/static/nbapps/notepad/addNote.ejs\",\"mode\":\"INLINE\",\"annotationContainerId\":\"ebook_container\",\"pageXOffset\":0} 
      

      Response Assertion applied to variable

    确保断言 正则表达式提取器

  2. 您可以直接对断言应用断言,在这种情况下选择&#34;子串&#34;在&#34;模式匹配规则&#34;