我正在使用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命令。
答案 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())
}
}
}