是否可以在Katalon中运行命令?

时间:2018-04-18 05:10:00

标签: testing cmd integration katalon-studio

Katalon在自动化测试中很受欢迎。我已经在我们的项目中使用它,它的工作效果令人惊讶。

现在,我想要实现的是创建一个测试用例,它打开一个终端(使用mac)并键入一些命令来运行它,例如:

cd /documents/pem/key.pem
connect to -my server via SSH@method
sudo su
yum install php7
yum install mysql

4 个答案:

答案 0 :(得分:1)

可以从command line运行Katalon Studio。

有一个简短的教程here

并且可以通过命令行执行模式从v5.10(当前为Beta)覆盖配置文件变量。 在Katalon forum上给出的示例是:

使用以下命令在命令行中简单地传递参数:-g_XXX = XXX

以下是覆盖URL变量的示例:

-g_URL=http://demoaut.katalon.com

答案 1 :(得分:1)

这是另一个自定义关键字!它使用文件名和路径,如果不提供路径,它将在项目根目录中搜索文件。它将批处理文件的输出导出到项目文件夹中的batch_reports文件夹中,您需要预先创建它。

select *
from product_attributes_1 pa
join product_attributes_ext pae on pae.MyKey = pa.MyKey
join product_src_1 ps1 on ps1.MyKey = pa.MyKey
join product_src_2 ps2 on ps2.MyKey = pa.MyKey
join product_whatever_somenumber pws on pws.MyKey = pa.MyKey
where pa.MyKey = @MyKey

答案 2 :(得分:0)

我已经做了一些研究。我没有找到任何资源或任何人正在寻找与我相同的事物。我认为这是正式的,否。对此的答案是,不可能。

答案 3 :(得分:0)

您并不孤单,使用自定义关键字可以实现您想要的目标。这是显示命令行应用程序测试的示例。您可以执行相同的操作来调用所需的任何命令行脚本。考虑一个 runCmd 关键字,或者一个 runCmdWithOutput 来获取输出并在其上运行各种断言。

@Keyword
def pdfMetadata(String input) {
    KeywordUtil.logInfo("input: ${input}")

    def csaHome = System.getenv("CSA_HOME")
    def cmd = "cmd /c ${csaHome}/bin/csa -pdfmetadata -in \"${projectPath}${input}\"";
    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())
    }
}

然后您可以在测试用例中使用它:

CustomKeywords.'CSA.pdfMetadata'('/src/pdf/empty.pdf')