Параметры могут быть переданы в моделирование из командной строки или из сценария запуска 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]”
Адам Гжегожевский