为了账号安全,请及时绑定邮箱和手机立即绑定

在 Groovy 脚本中执行 .jar

在 Groovy 脚本中执行 .jar

潇潇雨雨 2022-07-06 18:39:33
我正在使用脚本模式(一种 groovy 脚本)使用 Katalon Studio 创建一个测试用例。我需要那个 groovy 脚本来执行一个.jar位于 Katalon 项目文件夹中的脚本。出于测试目的,我创建了一个 .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”,并且我没有.jar像在 git 命令中那样在 Katalon 控制台中获得控制台输出。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

找到了一种方法来做到这一点。


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

        }

    }


}


查看完整回答
反对 回复 2022-07-06
  • 1 回答
  • 0 关注
  • 311 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号