JMeter 实现:上接口失败则不执行下一个接口

发布时间:2026/6/30 22:25:10
JMeter 实现:上接口失败则不执行下一个接口 多个接口只要一个失败,只跳过关联接口步骤 1在“上一个接口”设置开关变量在上一个接口上右键 →添加 → 后置处理器 → JSR223 后置处理器填入脚本java// 方式一只看 HTTP 成功 //if (prev.isSuccessful()) { // vars.put(LOGIN_OK, true); //} else { // vars.put(LOGIN_OK, false); //} // 方式二 HTTP 成功 加 业务逻辑判断例如响应体包含 code:0 才算成功 //获取HTTP响应状态码 String httpCode prev.getResponseCode(); // 获取接口完整返回体 String resBody prev.getResponseDataAsString(); // 双重判断http状态200 且 业务码code0 if (httpCode 200 resBody.contains(\code\:0)) { vars.put(LOGIN_OK, true); } else { vars.put(LOGIN_OK, false); }//方式二另一种写法 if (prev.getResponseCode() 200 prev.getResponseDataAsString().contains(\code\:0)) { vars.put(LOGIN_OK, true); // 成功标记true } else { vars.put(LOGIN_OK, false); // 失败标记false }prev是 JMeter 内置变量代表上一个取样器的结果。LOGIN_OK 自定义变量用来给 If 控制器判断步骤 2用 If 控制器包裹“关联接口”在需要跳过的接口外层添加逻辑控制器 → If 控制器条件填text${__jexl3(${LOGIN_OK} true)}上一个接口为groovy 模式必须勾选【解释条件为变量】逻辑只有LOGIN_OKtrue接口 A 成功才会执行内部接口 BA 失败时直接跳过 B。然后在 If 控制器下面放你所有需要依赖上一个接口的请求。结构树形图text线程组 ├── 登录 │ └── JSR223 后置处理器设置 LOGIN_OK ├── If 控制器条件${__jexl3(${LOGIN_OK} true)} │ ├── 查询用户信息 │ │ └── JSR223 后置处理器设置 QUERY_USER_OK │ ├── If 控制器条件${__jexl3(${QUERY_USER_OK} true)} │ │ └── 修改用户信息 │ ├── 查询订单列表 │ │ └── JSR223 后置处理器设置 QUERY_ORDER_OK │ └── If 控制器条件$${__jexl3(${QUERY_ORDER_OK} true)} │ └── 修改订单状态 └── 其他不依赖登录的接口不受影响变量默认值----可以没有在测试计划开头添加一个配置元件 → 用户定义的变量把开关变量默认设为false避免变量未定义时报错textLOGIN_OK false QUERY_USER_OK false QUERY_ORDER_OK false