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

如何动态设置Gatling的runDescription值以自定义报告描述?

动态设置Gatling的runDescription实现自定义报告描述

当然可以动态设置gatling.core.runDescription,核心思路是通过命令行传递参数,在Simulation类中读取这些参数并构造自定义描述字符串,直接重写runDescription属性即可。

具体实现步骤:

  1. 命令行传递参数:运行Gatling时,通过-D前缀传递自定义参数(比如用户数、ramp时间、启用的场景等):

    gatling.sh -Dusers=100 -Dramp_time=60 -Denabled_scenarios=Login,Checkout -s com.your.package.MySimulation
    
  2. 在Simulation类中读取参数并构造描述:
    在你的Simulation类中,读取命令行传入的系统属性,拼接成有意义的runDescription:

    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    
    class MySimulation extends Simulation {
      // 从系统属性读取参数,设置默认值以防未传入
      val userCount = sys.props.getOrElse("users", "50").toInt
      val rampTimeSec = sys.props.getOrElse("ramp_time", "30").toInt
      val enabledScenarios = sys.props.getOrElse("enabled_scenarios", "Default").split(",").toList
    
      // 重写runDescription,构造自定义描述
      override val runDescription = s"压测任务 - 用户数: $userCount, 启动时长: ${rampTimeSec}s, 启用场景: ${enabledScenarios.mkString(",")}"
    
      // 后续的HTTP配置、场景定义等
      val httpConf = http.baseUrl("https://your-target-api.com")
    
      val loginScenario = scenario("用户登录")
        .exec(http("登录请求").post("/login").formParam("username", "test").formParam("password", "test"))
    
      val checkoutScenario = scenario("订单结算")
        .exec(http("结算请求").post("/checkout").formParam("orderId", "123"))
    
      // 根据传入的场景参数组装测试
      val scenariosToRun = enabledScenarios.map {
        case "Login" => loginScenario.inject(rampUsers(userCount).during(rampTimeSec))
        case "Checkout" => checkoutScenario.inject(rampUsers(userCount).during(rampTimeSec))
        case _ => scenario("默认场景").exec(http("默认请求").get("/"))
      }
    
      setUp(scenariosToRun).protocols(httpConf)
    }
    
  3. 查看效果:运行完成后,Gatling报告的顶部会显示你自定义的runDescription内容,清晰展示本次压测的关键参数。

扩展:构建工具集成(Maven/Gradle)

如果使用Maven或Gradle插件运行Gatling,可以在构建脚本中配置传递系统属性,比如Maven插件配置:

<plugin>
  <groupId>io.gatling</groupId>
  <artifactId>gatling-maven-plugin</artifactId>
  <version>3.9.5</version>
  <executions>
    <execution>
      <goals>
        <goal>test</goal>
      </goals>
      <configuration>
        <systemProperties>
          <users>${users}</users>
          <ramp_time>${ramp_time}</ramp_time>
          <enabled_scenarios>${enabled_scenarios}</enabled_scenarios>
        </systemProperties>
      </configuration>
    </execution>
  </executions>
</plugin>

然后通过Maven命令运行:

mvn gatling:test -Dusers=200 -Dramp_time=120 -Denabled_scenarios=Login,Browse

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:30:41