Как мне запустить внешний файл в soapui, взять вывод и установить его как заголовок

Я хотел бы запустить внешний файл .bat, используя скрипт groovy в soapUI. также хотел бы использовать вывод, сгенерированный из внешнего файла, в качестве значения для заголовка

вот скрипт, который я использую для запуска файла bat

String line
def p = "cmd /c C:\\Script\\S1.bat".execute()
def bri = new BufferedReader (new InputStreamReader(p.getInputStream()))
while ((line = bri.readLine()) != null) {log.info line}

вот содержимое bat файла

java -jar SignatureGen.jar -pRESOURCE -nRandomString -mGET -d/api/discussion-streams/metadata -teyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJjbGllbnQiOiIxIiwicm9sZSI6IllGQURNSU4iLCJleHAiOjI3NTgzMjU2MDIsInRpIjo3MjAwNiwiaWF0IjoxNTU4MzI1NjAyLCJwZXJzb24iOiI1In0.bbci7ZBWmPsANN34Ris9H0-mosKF2JLTZ-530Rex2ut1kjCwprZr_196N-K1alFBH_A9pbG0MPspaDOnvOKOjA
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
186
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующий код:

def p = "ls -la".execute()

def err = new StringBuffer()
def out = new StringBuffer()
p.waitForProcessOutput(out, err)

p.waitForOrKill(5000)
int ret = p.exitValue()

// optionally check the exit value and err for errors 

println "ERR: $err"
println "OUT: $out"

// if you want to do something line based with the output
out.readLines().each { line -> 
  println "LINE: $line"
}

основан на Linux, но переводится в Windows, просто заменяя ls -la вызовом вашего файла bat cmd /c C:\\Script\\S1.bat.

Это выполняет процесс, вызывает ждатьForProcessOutput, чтобы убедиться, что процесс не блокируется и что мы сохраняем потоки stdout и stderr процесса, а затем ждем завершения процесса, используя ждатьForOrKill.

После waitForOrKill процесс либо был остановлен, потому что он занял слишком много времени, либо завершился нормально. В любом случае переменная out будет содержать вывод команды. Чтобы выяснить, была ли ошибка во время выполнения bat-файла, вы можете проверить переменные ret и err.

Я выбрал тайм-аут waitForOrKill наугад, настройте его в соответствии с вашими потребностями. Вы также можете использовать waitFor без тайм-аута, который будет ждать завершения процесса, но, как правило, лучше установить тайм-аут, чтобы ваша команда не выполнялась бесконечно.

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

Bob Jones 20.05.2019 23:51

Переменная out в приведенном выше коде содержит вывод. Это тип StringBuffer, и если вам нужна переменная в экземпляре String, вместо этого вы можете, например, сделать: def strOut = out.toString() что даст вам переменную strOut типа java.lang.String с выводом из выполнения файла bat.

Matias Bjarland 21.05.2019 17:07

Другие вопросы по теме