在 Gatling 中传递运行时参数

Pass runtime arguments in Gatling

我正在尝试传递运行时参数,同时 运行 对几个字段进行 gatling 测试。例如,我试图在 运行 测试时动态传递用户数。我该怎么做?

最简单的方法是 Java 系统属性,例如,如果您将 workload model 定义为:

setUp(scn.inject(atOnceUsers(1)).protocols(httpProtocol))

如果您将 system property 的硬编码更改为动态读取,例如:

setUp(scn.inject(atOnceUsers(Integer.parseInt(System.getProperty("userCount")))).protocols(httpProtocol))

您将能够通过 -D command-line argument 动态传递所需数量的用户,例如:

gatling.bat -DuserCount=5 -s computerdatabase.BasicSimulation

更多信息:Gatling Installation, Verification and Configuration - the Ultimate Guide

这记录在 official documentation:

This can be done very easily with additional JAVA_OPTS in the launch script:

JAVA_OPTS="-Dusers=500 -Dramp=3600"

val nbUsers = Integer.getInteger("users", 1)
val myRamp = java.lang.Long.getLong("ramp", 0L)
setUp(scn.inject(rampUsers(nbUsers).during(myRamp.seconds)))

// Of course, passing a String is just as easy as:

JAVA_OPTS="-Dfoo=bar"

val foo = System.getProperty("foo")