Параметры могут быть переданы в моделирование из командной строки или из сценария запуска gatling.sh.

Обратитесь к этой странице.

Рассмотрим эту простую симуляцию:

class A_AtOnceUsers_1000 extends Scenario2 {
setUp(scen("Example scenario")
.inject(
atOnceUsers(1000),
nothingFor(5 seconds),
atOnceUsers(1000))
.protocols(httpConf))
.assertions(global.responseTime.mean.lt(2000))
}

Мы могли бы объявить переменную со значением 1000 и вставить ее в симуляцию, поскольку она появляется там дважды.

Сначала объявите это так:

val A_AtOnce = Integer.getInteger("A_AOusers", 1)

Затем вставьте val в симуляцию:

atOnceUsers(A_AtOnce),
nothingFor(5 seconds),
atOnceUsers(A_AtOnce))

Наконец, мы должны определить значение A_AOusers. Мы можем сделать это из командной строки или поместить в сам скрипт запуска.

Из командной строки:

$ JAVA_OPTS = ”- DA_AOusers = 1000” ./gatling.sh

Или укажите JAVA_OPTS = ”- DA_AOusers = 1000” в gatling.sh.

Обратите внимание, что здесь приоритет имеет сценарий, поскольку он выполняется последним - если вы добавите строку выше в сценарий, а затем запустите что-то вроде:

$ JAVA_OPTS = ”- DA_AOusers = 1234” ./gatling.sh

моделирование будет выполняться с A_AOusers, имеющим значение 1000, а не 1234.

Еще одна вещь, о которой следует знать, - это аргументы:

rampUsersPerSec
constantUsersPerSec

возьмите Double, а не Integer. (Например, от rampUsersPerSec (Double) до Double)

Вот простой способ решить эту проблему:

val nbUsers = Integer.getInteger("users").toDouble

не забывая про JAVA_OPTS = ”users = [Int]”

Адам Гжегожевский