Выполнить .jar в Groovy скрипте - PullRequest
0 голосов
/ 25 февраля 2019

Я создаю тестовый пример с Katalon Studio, используя режим сценария, который является отличным сценарием.Мне нужен этот Groovy-скрипт для выполнения .jar, который будет находиться в папке проекта Katalon.

Для тестирования я создал .jar, который создает файл с именем «the-file-name» и печатает сообщениев консоли.

Я нашел способ выполнить команду в Groovy:

def command = "git --version"

def proc = command.execute()

proc.waitFor()

println proc.in.text

Это печатает версию git в консоли Katalon.Поэтому я догадался, что было бы достаточно положить «java -jar test.jar», но даже если кажется, что выполнение завершается правильно, кажется, что .jar ничего не сделал.Просто чтобы быть уверенным, я выполнил тот же .jar с помощью командной строки de Windows, и он отлично работает.Файл создан, и сообщение записано в консоли.

При выполнении консоль Katalon работает так, как будто она была выполнена правильно.Нет сообщений об ошибках, и выполнение помечено как успешное, но тестовый файл "the-file-name" нигде не найден, и я не получаю вывод консоли .jar, показанный в консоли Katalon, как в gitкоманда.

1 Ответ

0 голосов
/ 25 февраля 2019

Нашли способ сделать это.

public class CustomKeywords {

    @Keyword
    def runBatch(String path) {
        def cmd = "cmd /c \"java -jar \"" + path + "\"\"";
        runCmd(cmd)
    }

    def runCmd(String cmd) {
        KeywordUtil.logInfo("cmd: ${cmd}")

        def proc = cmd.execute();
        def outputStream = new StringBuffer();
        def errStream = new StringBuffer()
        proc.waitForProcessOutput(outputStream, errStream);
        println(outputStream.toString());
        println(errStream.toString())

        if(proc.exitValue() != 0){
            KeywordUtil.markFailed("Out:" + outputStream.toString() + ", Err: " + errStream.toString())
        }
    }

}
...