Хорошо, сначала простой ответ.
readat C: \ Program Files \ apache-jmeter-5.1.1 \ bin \ jmeter.bat: отрицательное смещение НЕ выполнено
Это не удается, потому что это bat-файл Windows, и вы пытаетесь запустить его в Linux. Вам нужно запустить .sh
start скрипт и убедиться, что вы нажимаете .tgz
загрузку из двоичных файлов JMeter страница.
Кроме того, это становится неясным и зависит от того, что именно вы хотите запустить?
Вы можете просто запустить jmeter
из командной строки, например здесь. В этом случае у вас нет постоянного работающего сервера, что создает проблему, потому что Cloud Foundry ожидает, что ваше приложение будет работать вечно.
Вы можете обойти это, используя вместо этого задачу. Вам нужно будет запустить JMeter как приложение, дать ему выполнить этап, а затем остановить приложение. После этого вы можете cf run-task
выполнить jmeter -n -t plan.jmx ...
.
Другой вариант - попробовать запустить JMeter remote, но это не работает чтобы работать хорошо, потому что JMeter использует Java RMI, который не основан на HTTP, поэтому потребуется использование TCP-маршрутов Cloud Foundry или обильное использование cf ssh
для создания туннелей. Тоже не лучшие варианты.
Я бы посоветовал использовать cf cli. Быстрый тест, у меня сработало следующее.
- Загрузите двоичную версию
.tgz
с веб-сайта JMeter.
Добавьте следующий .cfignore
файл. Он просто пропускает ненужные вам вещи.
NOTICE
LICENSE
README.md
docs
printable_docs
licenses
extras
Добавьте файл .profile
. Это установит пару переменных env, чтобы JMeter заработал.
export JAVA_HOME=.java-buildpack/open_jdk_jre/
export PATH=$PATH:$JAVA_HOME/bin
Поместите ваши .jmx
файлы в каталог JMeter.
- Затем запустите
cf push -b java_buildpack -m 1G -c 'sleep 9999' -u process --no-route jmeter-cli
.
- Приложение должно запуститься и ничего не делать, немедленно запустить
cf stop jmeter-cli
. Вам просто нужно сделать это, чтобы приложение поэтапно.
- Затем запустите
cf run-task jmeter-cli './bin/jmeter -n -t your-test.jmx'
.
- Запустите
cf logs --recent jmeter-cli
и посмотрите результаты. Или запустите cf logs jmeter-cli
во втором терминале и транслируйте их по мере выполнения задачи.
Пример вывода:
2019-09-08T22:06:35.72-0400 [CELL/0] OUT Cell e5f61515-c164-4c36-9686-faa2a0a363ed creating container for instance 29a1deb6-04c1-4105-91f8-0a8a5dadf367
2019-09-08T22:06:36.56-0400 [CELL/0] OUT Cell e5f61515-c164-4c36-9686-faa2a0a363ed successfully created container for instance 29a1deb6-04c1-4105-91f8-0a8a5dadf367
2019-09-08T22:06:41.18-0400 [APP/TASK/4e6e54e6/0] ERR Sep 09, 2019 2:06:41 AM java.util.prefs.FileSystemPreferences$1 run
2019-09-08T22:06:41.18-0400 [APP/TASK/4e6e54e6/0] ERR INFO: Created user preferences directory.
2019-09-08T22:06:41.61-0400 [APP/TASK/4e6e54e6/0] OUT Creating summariser <summary>
2019-09-08T22:06:41.61-0400 [APP/TASK/4e6e54e6/0] OUT Created the tree successfully using Test Google.jmx
2019-09-08T22:06:41.61-0400 [APP/TASK/4e6e54e6/0] OUT Starting the test @ Mon Sep 09 02:06:41 UTC 2019 (1567994801615)
2019-09-08T22:06:41.63-0400 [APP/TASK/4e6e54e6/0] OUT Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
2019-09-08T22:06:43.66-0400 [APP/TASK/4e6e54e6/0] OUT summary = 30 in 00:00:02 = 19.9/s Avg: 99 Min: 60 Max: 450 Err: 0 (0.00%)
2019-09-08T22:06:43.66-0400 [APP/TASK/4e6e54e6/0] OUT Tidying up ... @ Mon Sep 09 02:06:43 UTC 2019 (1567994803664)
2019-09-08T22:06:43.66-0400 [APP/TASK/4e6e54e6/0] OUT ... end of run
2019-09-08T22:06:44.39-0400 [APP/TASK/4e6e54e6/0] OUT Exit status 0
Единственное, что следует упомянуть, это то, что вы можете использовать параметр -l
и записывать вывод в файл JTL. Если вы это сделаете, он запишется в локальную файловую систему, и когда ваша задача завершится, этот файл исчезнет, вы не сможете его получить.
Если вам нужно записать результаты в файл JTL, вам также потребуется изменить команду задачи, которую вы запускаете, после завершения JMeter, загрузить файл результатов в постоянное хранилище, например S3.
Надеюсь, это поможет!
person
Daniel Mikusa
schedule
09.09.2019