Выполнение сценария оболочки, содержащего java -jar Runtime.exec (), который будет выполнять java, уровень ОС или уровень приложения - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь выполнить java jar из моих jmeter-тестов через beanshell.

Подход, который я использовал, состоит в том, чтобы создать сценарий оболочки, выполнить его через beanshell с помощью функции Runtime.exec ().

Вопрос, который у меня возникает, заключается в том, будет ли выполнение этого сценария оболочкивозьмите java с уровня instance / host / OS, или он будет выполнен как часть текущей java, которую использует приложение.

Могут быть открытые вопросы, на которые я хочу дать ответ раньше времени:

  1. У меня есть проект Maven, в котором я указываю Java.
  2. Сборка запускает скрипт jmeter, в котором bean-оболочка выполняет файл jar.
  3. Я также выполняю некоторую обработку с выводом выполнения jar (записываю конкретный вывод в другой файл, поэтому я написалсценарий оболочки).
  4. Я использую этот конкретный вывод и использую его для добавления к моему запросу в jmeter перед запросом.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

В зависимости от того, как вы запускаете ваше приложение. Если вы просто используете

Runtime.getRuntime().exec("java -jar ...."); 

Экземпляр Process будет искать исполняемый файл java, который доступен в вашей ОС PATH . Если в PATH не будет java исполняемого файла - вызов не будет выполнен.


Имейте в виду, что начиная с JMeter 3.1 рекомендуется использовать JSR223 Test Elements и язык Groovy для любой формы сценариев, поэтому рассмотрите возможность перехода на Groovy при следующей доступной возможности. Например, вы можете запустить процесс и получить вывод просто:

String response = "your command".execute().text

Также вместо того, чтобы запускать .jar как отдельный процесс, может быть лучше добавить его в JMeter Classpath и вызывать необходимые функции непосредственно из кода Groovy. См. Apache Groovy - почему и как вы должны его использовать статья для получения дополнительной информации.

0 голосов
/ 11 мая 2018

В некотором смысле, оба.

Сценарий оболочки будет выполняться как часть вашей Java-программы, но он будет выполняться с использованием системного исполняемого файла Java по умолчанию, если вы не указали исполняемый файл Java в exec() вызов метода.

...