运行一些测试,我们需要验证$出现在字符串中不会破坏服务(手动测试它,它工作正常!)。
将测试转换为通过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是否可能误解结果中的$以表示新变量?
任何帮助表示赞赏。感谢。
答案 0 :(得分:2)
根据How to Use JMeter Assertions in Three Easy Steps
模式可以是:
- “等于”或“子串”子句的“字符串”
- “包含”或“匹配”子句的“Perl5风格”正则表达式
醇>
根据JMeter's Regular Expressions用户手册章节:
多行模式仅影响解释元字符' ^' 和' $' 的方式。
所以你有两个选择:
如果您要继续使用"包含"模式匹配规则您将需要使用反斜杠转义$
元字符,如:
EDB\$DE
或者你可以切换到" Equals"模式匹配规则,在这种情况下,您可以按原样保留EDB$DE
模式