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

如何通过属性文件按用户设置执行JMeter中的指定API?

更优解决方案推荐

方案一:全局JSR223 PreProcessor统一控制请求跳过

这是最简洁高效的方式,无需为每个API单独配置控制器,仅需一个全局预处理脚本即可实现批量控制:

  1. 对齐API名称与属性键:确保测试计划中每个API请求的名称,与属性文件里对应的开关键完全一致(比如属性API1对应名称为API1的HTTP请求)。
  2. 添加全局预处理脚本:在Thread Group节点下添加一个JSR223 PreProcessor(所有子API请求会自动继承这个逻辑),脚本内容如下:
    // 获取当前请求的API名称
    def currentApiName = sampler.getName()
    // 从属性文件读取该API的启用状态,默认false
    def shouldExecute = props.get(currentApiName, "false")
    // 若状态不为true,直接跳过当前请求
    if (!shouldExecute.equalsIgnoreCase("true")) {
        sampler.setSkip(true)
    }
    
  3. 验证效果:运行脚本时,属性值为false的API会被自动跳过,无需额外配置。

方案二:循环控制器+Switch Controller批量执行启用的API

如果需要更灵活地控制API执行顺序或批量管理,可采用此方案:

  1. 收集启用的API列表:在Thread Group最前端添加JSR223 Sampler,脚本用于筛选属性值为true的API:
    def enabledApis = []
    // 遍历所有属性,筛选出以API开头且状态为true的项
    props.each { key, value ->
        if (key.startsWith("API") && value.equalsIgnoreCase("true")) {
            enabledApis.add(key)
        }
    }
    // 将启用的API列表存入JMeter变量,用逗号分隔
    vars.put("ENABLED_APIS", enabledApis.join(","))
    
  2. 遍历启用的API:添加ForEach Controller,设置Input variable prefix为ENABLED_APIS,Output variable name设为CURRENT_API。
  3. 匹配执行对应API:在ForEach Controller下添加Switch Controller,设置Switch Value为${CURRENT_API},然后将所有API请求移到Switch Controller下(确保请求名称与属性键一致)。

运行时,ForEach Controller会遍历所有启用的API,Switch Controller自动执行对应的请求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:35:20