Выполнение команд оболочки через beanshell в jmeter. Я хочу выполнять команды оболочки в препроцессоре beanshell в jmeter
Может ли кто-нибудь сказать, как это сделать.
Выполнение команд оболочки через beanshell в jmeter. Я хочу выполнять команды оболочки в препроцессоре beanshell в jmeter
Может ли кто-нибудь сказать, как это сделать.
Beanshell — это JAVA (язык сценариев). Заявление ниже должно помочь.
Runtime.getRuntime().exec("COMMAND");
Основываясь на ответе @vins, я создаю облачный тест ping, чтобы убедиться, что мой почтовый сервер доступен.
Кроме того, если вы хотите регистрировать вывод Runttime.getRuntime().exec("COMMAND");
, используйте что-то подобное в вашем jmeter BeanShell Sampler
:
// ********
// Ping the email server to verify it's accessable from the execution server
//
// Preconditions:
// custom variable is available named "emailServer" which contains the IP-Adress of the machine to ping
//
// ********
log.info(Thread.currentThread().getName()+": "+SampleLabel+": Ping email server: " + vars.get("emailServer"));
// Select the ping command depending on your machine type windows or unix machine.
//String command = "ping -n 2 " + vars.get("emailServer"); // for windows
String command = "ping -c2 " + vars.get("emailServer"); // for unix
// Print the generated ping command
log.info(command);
// Create a process object and let this object execute the ping command
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
log.info("Execution complete.");
// Read the output of the ping command and log it
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder logCommandOutput = new StringBuilder();
String line;
while( (line = in.readLine()) != null) {
logCommandOutput.append(line);
}
in.close();
log.info("Output: " + logCommandOutput.toString());
Process
Object. Почему мы должны воспринимать это как процесс, а не просто как строку. Также как здесь работает BufferReader
. Нужен ли нам StringBuilder,
, можем ли мы распечатать вывод без него?
- person sdgd; 23.02.2018
Process
я взял, чтобы показать результат в журнале. Я использовал этот сценарий в другой среде, где я хотел, чтобы выходные данные регистрировались. BufferReader
нам нужно получить результат процесса, а StringBuilder
просто удобно. Я уверен, что все это может быть достигнуто более простым способом.
- person Bruno Bieri; 23.02.2018