Запуск Gatling из контейнера

Я использую контейнер denvazh/gatling, и все работает хорошо, за исключением одной вещи, которую я пытаюсь передать в виде списка симуляций:

Attaching to gatling
gatling_1 | GATLING_HOME is set to /opt/gatling
gatling_1 | Choose a simulation number:
gatling_1 |      [0] AppsPods
gatling_1 |      [1] ServerSimulation
gatling_1 |      [2] computerdatabase.BasicSimulation
gatling_1 |      [3] computerdatabase.advanced.AdvancedSimulationStep01
gatling_1 |      [4] computerdatabase.advanced.AdvancedSimulationStep02
gatling_1 |      [5] computerdatabase.advanced.AdvancedSimulationStep03 

Я пишу такую ​​команду как:

docker run -it --rm -v /home/core/gatling/conf:/opt/gatling/conf \
-v /home/core/gatling/user-files:/opt/gatling/user-files \
-v /home/core/gatling/results:/opt/gatling/results \
denvazh/gatling -s AdvancedSimulationStep01

но ничего не имеет смысла, список симуляции снова отображается, и мне нужно выбрать тест из списка, чтобы начать симуляцию. Так можно ли запустить только тот тест, который я указываю запускающей команду запуска докера ???


person user6329667    schedule 20.09.2016    source источник


Ответы (2)


Вам нужно указать полное имя класса, т.е.

docker run -it --rm -v /home/core/gatling/conf:/opt/gatling/conf \ -v /home/core/gatling/user-files:/opt/gatling/user-files \ -v /home/core/gatling/results:/opt/gatling/results \ denvazh/gatling -s computerdatabase.advanced.AdvancedSimulationStep01

person niharika_neo    schedule 21.09.2016
comment
Спасибо и еще вопрос можно ли в ланч сразу 2 и более теста например AdvancedSimulationStep01 и AdvancedSimulationStep02? - person user6329667; 21.09.2016
comment
gatling.io/docs/2.0.0-RC2/project/faq. html - из-за этого невозможно запускать симуляции последовательно. - person niharika_neo; 21.09.2016
comment
но если у меня есть пакет тестов, например, computerdatabase.advanced состоит из 3 тестов, можно ли протестировать их последовательно?? - person user6329667; 21.09.2016
comment
Чтобы запустить более одного теста последовательно, вы должны использовать сторонние (не gatling) решения. Так, например, вы можете использовать Jenkins Multijob Plugin или свою собственную оболочку. script - готовое к использованию решение или gatling-maven-plugin пример - person rkarczmarczyk; 07.02.2017
comment
Также можно использовать gatling-maven-plugin с флагом runMultipleSimulations, установленным в true. Затем вы можете использовать includes/exludes, как в примере здесь или с параметром simulationsFolder, как в примере здесь - person rkarczmarczyk; 07.02.2017

Я запускаю свои симуляции немного по-другому, возможно, так, как это делается в системе Taurus, где bzt-configs — это папка, содержащая скрипты, а artifacts — это папка, содержащая выходные данные теста:

#!/bin/bash
clear
## use en0, not en1, if your on WIFI
OSX_HOST=`ipconfig getifaddr en0`
MACHINE_HOST=$OSX_HOST
CURRENT_DIR=`pwd`
if [[ -z "${GATLING_HOME}" ]]; then
  GATLING_HOME=~/gatling
fi
EXEC_SUB_FOLDER=out-taurus
EXEC_FOLDER="$CURRENT_DIR/${EXEC_SUB_FOLDER}"
[ -d $EXEC_FOLDER ] || mkdir $EXEC_FOLDER
yes | cp -rf performance/my-simulation/scripts/* $EXEC_FOLDER
cd $EXEC_FOLDER
docker run -it --rm -e MY_ENV='dev' --add-host "machine-host:${MACHINE_HOST}" \
 -v ~/.bzt-rc::/bzt-configs/.bzt-rc -v $PWD:/bzt-configs -v $PWD:/tmp/artifacts \
 blazemeter/taurus:latest /tmp/artifacts/performance.yml
cd ..

Где .yml содержит вашу конфигурацию Gatling bzt:

execution:
- executor: gatling
  scenario: MySimulation
modules:
  console:
    disable: 'true'
  local:
    sequential: 'true'
reporting:
- module: final-stats
scenarios:
  MySimulation:
    script: computerdatabase.advanced.AdvancedSimulationStep01.scala
    simulation: MySimulation
settings:
  check-interval: 1s

Затем ваш скрипт гатлинга может использовать имя machine-host в /etc/hosts для обратного вызова тестовой цели.

person djangofan    schedule 26.08.2018