如何使用JMeter断言API响应包含[]或"transaction"?
JMeter断言配置:满足任一条件即通过
方法1:使用响应断言(Response Assertion)
- 添加响应断言:右键目标请求 → 添加 → 断言 → 响应断言
- 在「要测试的响应字段」中勾选「响应文本」
- 在「模式匹配规则」中选择「OR(任一)」
- 在「测试模式」中添加两个规则:
- 输入
^\[\]$(正则表达式,精确匹配仅为空方括号的响应) - 输入
transaction(匹配包含该字符串的响应)
- 输入
- 勾选「正则表达式」选项(确保第一个规则的精确匹配生效,第二个规则也兼容此模式)
方法2:使用BeanShell断言(灵活度更高)
如果需要自定义失败提示或更复杂逻辑,可选用BeanShell断言:
- 添加BeanShell断言:右键目标请求 → 添加 → 断言 → BeanShell断言
- 在脚本框中输入以下代码:
String response = SampleResult.getResponseDataAsString().trim(); if (response.equals("[]") || response.contains("transaction")) { SampleResult.setSuccessful(true); } else { SampleResult.setSuccessful(false); SampleResult.setResponseMessage("断言失败:响应既不是空方括号,也不包含'transaction'字符串"); }
- 脚本会自动判断响应是否满足任一条件,满足则标记请求为成功,否则标记失败并给出明确提示
关键注意点
- 响应断言选「OR」模式时,只要有一个规则匹配就会通过断言
- 正则表达式
^\[\]$用于排除响应前后有空格或冗余字符的误判情况 - BeanShell脚本中使用
trim()处理响应,避免空格干扰判断逻辑
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

