如何捕获Random Order Controller中首个验证通过的采样器响应?
捕获Random Order Controller中首个验证通过采样器的响应
以下是具体实现步骤:
1. 为每个采样器配置响应断言
给10个采样器分别添加响应断言,设置验证规则(比如检查响应文本包含成功标识,如"status": "success"),确保只有验证通过的采样器会被标记为执行成功。
2. 初始化全局存储变量
在测试计划根节点添加用户定义变量,新增变量firstPassedResponse,初始值设为空字符串,用来存储首个通过验证的采样器响应内容。
3. 为每个采样器添加后置处理器捕获响应
给每个采样器添加JSR223后置处理器,写入以下代码:
// 判断当前采样器是否通过断言,且还未捕获到首个成功响应 if (prev.isSuccessful() && vars.get("firstPassedResponse").isEmpty()) { // 将当前采样器的响应内容存入变量 vars.put("firstPassedResponse", prev.getResponseDataAsString()) // 可选:若要停止后续采样器执行,取消下面一行注释 // ctx.getThreadGroup().stop() }
注:JSR223搭配Groovy性能优于BeanShell,推荐优先使用。
4. 查看和使用捕获的响应
在Random Order Controller之后添加Debug Sampler(或自定义业务采样器),配合查看结果树组件即可查看firstPassedResponse变量的值,后续测试步骤也可直接引用该变量。
如果需要在捕获到首个成功响应后终止后续采样,取消后置处理器中ctx.getThreadGroup().stop()的注释即可;代码中的判断逻辑已确保只会存储第一个成功的响应,无需担心后续采样覆盖结果。
内容的提问来源于stack exchange,提问作者Ivank
相关产品推荐
相关产品推荐

