Попытка запустить тест JMeter с использованием док-контейнера для JMeter (не в режиме GUI) выдает ошибку «Не удалось открыть файл xxxx.jmx» - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь распространить нагрузочные тесты, используя контейнеры Docker.

На локальном компьютере в JMeter мои тесты работают правильно в графическом или не графическом режиме, но когда я пытаюсь запустить любой из них в не графическом режиме, используя образ докера для JMeter:

docker run egaillardon/jmeter -n -t ~/Developer/testing/login_test.jmx -l ~/Desktop/resultado.jtl

Я получаю сообщение об ошибке:

Не удалось открыть ~ / Developer / testing / login_test.jmx

Я пытался использовать разные образы докеров для JMeter(egaillardon/jmeter, justb4/jmeter, vmarrazzo/jmeter) и я получил ту же ошибку в любом из них.Кто-нибудь знает, что мне нужно изменить в моем jmx-файле, чтобы сделать его читаемым?

Я уже пробовал использовать это решение в Stack Exchange , но ни один из них не помог мне.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Вы также можете смонтировать каталог хоста в рабочий каталог по умолчанию (/jmeter) в контейнере.

Пример:

docker run --detach --rm --volume `pwd`:/jmeter egaillardon/jmeter-plugins --nongui --testfile test.jmx --logfile result.jtl


Таким образом, jmeterФайл журнала запуска (jmeter.log) также будет создан в каталоге хоста.

Кроме того, для решения проблемы, связанной с правами доступа к файлам, вы также можете назначить идентификатор пользователя и идентификатор группы пользователя на хосте.пользователю jmeter внутри контейнера.

Пример:

docker run --env JMETER_GROUP_ID=`/usr/bin/id -g` --env JMETER_USER_ID=`/usr/bin/id -u` --rm egaillardon/jmeter --server -Jserver.rmi.ssl.disable=true
0 голосов
/ 04 марта 2019

~/Developer/testing/login_test.jmx будет загружен из файловой системы контейнера в зависимости от вероятности, что этот путь не существует в вашей файловой системе контейнера.

Чтобы преодолеть это, вы можете смонтировать этот файл из файловой системы вашего хоста в файловую систему контейнера с томом докера :

docker run -v ~/Developer/testing/:/workspace egaillardon/jmeter -n -t /workspace/login_test.jmx -l /workspace/resultado.jtl

Пояснения

  • -v ~/Developer/testing/:/workspace: смонтировать каталог ~/Developer/testing/ с вашего хоста в путь /workspace/ в файловой системе контейнера
  • -n -t /workspace/login_test.jmx -l /workspace/resultado.jtl: параметры, переданные процессу контейнера (jmeter) во время выполнения и, следовательно, в контексте контейнера.Нам нужно настроить пути так, чтобы они соответствовали местоположению, которое мы выбрали при настройке тома.
...