在Groovy脚本中执行.jar

问题描述 投票:1回答:1

我正在使用脚本模式与Katalon Studio创建一个测试用例,这是一个groovy脚本。我需要那个groovy脚本来执行一个将在Katalon项目文件夹中的.jar

出于测试目的,我创建了一个.jar,它创建了一个名为“the-file-name”的文件,并在控制台中输出一条消息。

我找到了一种在Groovy中执行命令的方法:

def command = "git --version"

def proc = command.execute()

proc.waitFor()

println proc.in.text

这将在Katalon控制台中打印git的版本。所以我猜想放“java -jar test.jar”就足够了,但即使执行似乎正确结束,似乎.jar也没有做任何事情。可以肯定的是,我使用de Windows命令行执行了相同的.jar,它运行得很好。创建文件并在控制台中写入消息。

执行时,Katalon控制台就像正确执行一样。没有错误消息,执行被标记为成功,但测试文件“the-file-name”无处可寻,我没有像在git命令中那样获得Katalon控制台中显示的.jar控制台输出。

java groovy katalon-studio
1个回答
2
投票

找到了办法。

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())
        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.