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

Gatling 3.7 Scala转Java代码及测试总时长设置求助

Gatling Scala转Java 3.7版本实现及总时长设置方案

一、Scala代码转Java 3.7版本实现

假设你原有的Scala代码结构如下(常见场景定义+测试配置):

// Scala场景定义
val scn = scenario("TestScenario")
  .exec(http("request_1")
    .get("/api/test"))

// Scala测试配置
setUp(
  scn.inject(
    rampUsers(testConfig.vUsers) during (testConfig.rampup seconds)
  )
)

对应的Gatling 3.7 Java版本代码如下,已代入vUsers=5、rampup=20秒的配置:

import io.gatling.javaapi.core.*;
import io.gatling.javaapi.http.*;
import static io.gatling.javaapi.core.CoreDsl.*;
import static io.gatling.javaapi.http.HttpDsl.*;

public class TestSimulation extends Simulation {

    // 配置HTTP协议基础参数
    HttpProtocolBuilder httpProtocol = http
            .baseUrl("https://your-target-domain.com") // 替换为实际测试的基础URL
            .acceptHeader("application/json");

    // 定义测试场景
    ScenarioBuilder scn = scenario("TestScenario")
            .exec(http("request_1")
                    .get("/api/test")); // 替换为实际请求路径

    // 测试执行配置
    {
        setUp(
                scn.injectOpen(
                        rampUsers(5).during(20) // 20秒内逐步启动5个虚拟用户
                )
        ).protocols(httpProtocol);
    }
}

二、设置测试总时长为1小时

要控制整个测试的总时长为1小时(3600秒),有两种常用方案:

方案1:硬限制总时长(到点强制停止)

使用maxDuration方法直接限制测试的最长运行时间,不管用户注入是否完成或请求是否执行完毕:

setUp(
        scn.injectOpen(
                rampUsers(5).during(20)
        )
).protocols(httpProtocol)
 .maxDuration(3600); // 总时长设置为3600秒(1小时)

方案2:精确控制用户注入周期(持续运行至总时长)

如果需要先完成20秒的用户启动,再让用户持续运行至总时长1小时,可以调整注入策略,计算剩余运行时间:

setUp(
        scn.injectOpen(
                // 20秒内启动5个用户
                rampUsers(5).during(20),
                // 剩余3580秒(3600-20)保持5个用户持续运行
                constantUsersPerSec(5).during(3600 - 20)
        )
).protocols(httpProtocol);

两种方案的区别:

  • 方案1适合需要严格控制测试结束时间的场景,到点立即终止所有活动;
  • 方案2适合需要用户持续负载运行满1小时的场景,确保负载时长符合要求。

内容的提问来源于stack exchange,提问作者Khaled Al Shishani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:24:47