在Groovy脚本中执行.jar

时间:2019-02-25 13:54:09

标签: java groovy katalon-studio

我正在使用Katalon Studio使用脚本模式(一个时髦的脚本)创建一个测试用例。我需要那种时髦的脚本来执行将在Katalon项目文件夹中的.jar

出于测试目的,我创建了一个.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也似乎没有做任何事情。可以肯定的是,我使用Windows命令行执行了相同的.jar文件,并且效果很好。创建文件并将消息写入控制台。

执行时,Katalon控制台的行为就像正确执行一样。没有错误消息,执行被标记为成功,但是找不到测试文件“ the-file-name”,而且我在Katalon控制台中没有显示.jar的控制台输出,如git命令。

1 个答案:

答案 0 :(得分:1)

找到了一种方法。

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

}