当前位置: 首页 > 知识库问答 >
问题:

执行一个命令。用Groovy脚本编写jar

步炯
2023-03-14

我正在使用脚本模式(一种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什么也没做。为了确定,我也执行了同样的命令。jar使用de Windows命令行,它工作得非常好。将在控制台中创建文件并写入消息。

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

共有1个答案

乐正焕
2023-03-14

找到了一个方法

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

}
 类似资料:
  • IM 创建一个 groovy 脚本,用于从 docker 容器执行 SQL 脚本。这是我要执行的命令 当我从终端执行它时,它是有效的,但是当我调用我的groovy脚本来执行那一行时,我得到一个mysql帮助,就像命令不正确一样。 这就是我从groovy执行命令的方式: 有人知道为什么结果不一样或者为什么命令无法识别吗?

  • 我想在詹金斯中强制执行以下场景: 我有工作A和工作B 我想在执行作业B时禁用作业A,在执行作业B后,我想再次启用作业A。 为了启用/禁用作业A,我使用了Groovy插件:Groovy插件 Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本。 在开始执行作业B时,我添加了以下代码片段: 执行工作B后: 当我运行作业B时,它失败了,出现以下异常: 当我运行作业B时,它失败

  • 本文向大家介绍分享一个可以通过命令简写执行对应命令的Shell脚本,包括了分享一个可以通过命令简写执行对应命令的Shell脚本的使用技巧和注意事项,需要的朋友参考一下 本篇文章介绍一个可以通过命令简写执行对应命令的 shell 脚本。 假设这个 shell 脚本的名称为 tinyshell.sh。 在 Linux 下进行项目开发,经常会用到一些调试开发命令。 这些命令可能比较长,需要输入多个字符。

  • 问题内容: 我有两个问题: 有多台远程linux机器,我需要编写一个shell脚本,它将在每台机器上执行相同的命令集。(包括一些sudo操作)。如何使用Shell脚本来完成? 切换到远程计算机时,提示输入RSA指纹认证时如何处理。 远程机器是在运行中创建的VM,我只有它们的IP。因此,我无法事先在这些计算机中放置脚本文件并从我的计算机中执行它们。 问题答案: 有多台远程linux机器,我需要编写一

  • 为更具表现力、更可控的构建而组合使用 Ant 和 Groovy Ant 和 Maven 两者在构建处理工具的世界中占统治地位。但是 XML 却凑巧是一种非常没有表现力的配置格式。在“实战 Groovy”这个新系列的第 2 期中,Andrew Glover 将介绍 Groovy 的生成器实用工具,这个工具能够极其容易地把 Groovy 与 Ant 和 Maven 结合在一起,形成更具表现力、更可控的

  • 我试图使用groovy脚本创建Soapui项目。当直接从SoapUI运行它时,脚本工作正常,并且创建了使用WSDL的新项目。 该脚本是在:Project->TestSuite->TestCase->Groovy脚本中创建的 脚本在中正常工作。但是,在使用运行时失败,如下所示: 错误:java.lang.NullPointerException:无法对空对象调用方法createProject()