Как развернуть Apache-Jmeter-5.1.1 на Pivotal Cloud Foundary

Я пытаюсь развернуть Apache-Jmeter (версия 5.1.1), автономное приложение в Pivotal Cloud Foundry, но не могу

У меня есть установка Apache-Jmeter (версия 5.1.1), запущенная на моем компьютере с Windows, поэтому я попытался отправить этот каталог / папку в PCF как приложение, но это не удалось с ошибкой ниже

C:\Program Files\apache-jmeter-5.1.1>cf push apache-jmeter-5.1.1

Pushing from manifest to org dev-testing/ space Dev as user1...
Using manifest file C:\Program Files\apache-jmeter-5.1.1\manifest.yml
Getting app info...

readat C:\Program Files\apache-jmeter-5.1.1\bin\jmeter.bat: negative offset
FAILED

Вот мой файл manifest.yml выглядит так:

---
applications:
- name: jmeter-5-1-pcf
  path: bin/jmeter.bat
  memory: 512m
  instances: 1

Я должен иметь возможность запускать свои сценарии Jmeter (я имею в виду test.jmx) из Pivotal Cloud Foundry, также было бы хорошо, если бы я увидел пользовательский интерфейс Apache-Jmeter, который был развернут на Pivotal Cloud Foundry


person phani    schedule 06.09.2019    source источник


Ответы (1)


Хорошо, сначала простой ответ.

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. Быстрый тест, у меня сработало следующее.

  1. Загрузите двоичную версию .tgz с веб-сайта JMeter.
  2. Добавьте следующий .cfignore файл. Он просто пропускает ненужные вам вещи.

    NOTICE
    LICENSE
    README.md
    docs
    printable_docs
    licenses
    extras
    
  3. Добавьте файл .profile. Это установит пару переменных env, чтобы JMeter заработал.

    export JAVA_HOME=.java-buildpack/open_jdk_jre/
    export PATH=$PATH:$JAVA_HOME/bin
    
  4. Поместите ваши .jmx файлы в каталог JMeter.

  5. Затем запустите cf push -b java_buildpack -m 1G -c 'sleep 9999' -u process --no-route jmeter-cli.
  6. Приложение должно запуститься и ничего не делать, немедленно запустить cf stop jmeter-cli. Вам просто нужно сделать это, чтобы приложение поэтапно.
  7. Затем запустите cf run-task jmeter-cli './bin/jmeter -n -t your-test.jmx'.
  8. Запустите 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