You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中基于JSR223采样器实现嵌套Switch控制器

实现基于JSR223采样器的嵌套Switch控制器逻辑

我来帮你把这段代码调整得更规范,修复潜在问题,同时确保能正确生成嵌套Switch控制器需要的变量:

// 解析响应中的options数量,存入counts变量
def responseJson = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def counts = responseJson.options.size() as String
vars.put('counts', counts)

// 根据counts值设置Opt变量(修复原代码中Count未定义的问题)
if (counts.toInteger() == 1) {
    vars.put('Opt', 'Single')
} else {
    vars.put('Opt', 'Double')
}

// 使用JsonPath判断options_available是否为空数组,设置size变量
def optionsAvailable = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '$.options_available')
if (optionsAvailable.isEmpty()) {
    vars.put('size', 'NonConfigurable')
} else {
    vars.put('size', 'Configurable')
}

代码细节说明:

  • 先统一解析响应JSON,避免重复调用prev.getResponseData(),提升脚本执行效率
  • 修复了原代码中Count未定义的错误,改为从vars中获取counts并转为整数做判断
  • 把double调整为首字母大写的Double,保持变量值命名风格一致(你可以根据Switch控制器的case名称灵活调整)
  • 使用isEmpty()方法判断数组是否为空,比直接和[]对比更稳妥,兼容性更好

配合嵌套Switch控制器的使用步骤:

  1. 第一层Switch控制器:将Switch Controller的Switch Value设置为${Opt},然后添加两个子节点,分别命名为Single和Double,对应不同分支的逻辑
  2. 第二层Switch控制器:在第一层的每个子节点下,再添加一个Switch Controller,把它的Switch Value设置为${size},然后添加两个子节点,分别命名为NonConfigurable和Configurable

这样就能基于Opt和size两个变量,实现完全嵌套的分支控制逻辑了。

内容的提问来源于stack exchange,提问作者Siddish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:43:57