如何在Katalon Studio中获得测试用例名称

时间:2019-07-12 15:52:09

标签: katalon-studio

我正在尝试获取每个测试用例的屏幕快照,并将其导出到具有名称的屏幕快照目录中。

我正在使用:

testName = RunConfiguration.getExecutionSourceName().toString()

,但这仅包含测试套件的名称,而不包含测试用例的名称。

WebUI.takeScreenshot('path'+testName+'.png')

如何引用测试用例名称而不是测试套件名称?

谢谢。

编辑:我正在截屏的代码当前位于测试套件中的“ TearDownTestCase”方法中。

2 个答案:

答案 0 :(得分:0)

您可以使用RunConfiguration.getExecutionSource()来获取正在运行的测试用例的完整路径。

然后您可以根据需要进行处理。例如,要获取测试用例名称,您可以执行以下操作

RunConfiguration.getExecutionSource().toString().substring(RunConfiguration.getExecutionSource().toString().lastIndexOf("\\")+1)

说明:

.getExecutionSource()方法将为您提供测试用例的完整路径,类似于C:\users\user.name\Katalon Studio\Test Cases\Test Case Name.tc(可能有所不同)。

由于只需要最后一部分,因此可以使用Groovy将该字符串剪切为所需的内容。因此,我在\(+ 1,因为我也想剪切反斜杠)之前,在最后一个lastIndexOf(即Test Case Name.tc正在做的地方)处剪切字符串。 )。

然后,.substring()方法将给我剪切后剩下的东西。

答案 1 :(得分:0)

好的,所以我在@Mate Mrse的帮助下弄清楚了。在运行测试套件时,运行.getExecutionSource()方法将为我返回测试套件名称。但是我需要返回测试用例的名称。

我首先创建了一个测试监听器,并将其添加到“ @BeforeTestCase”中:

class TestCaseName {

    @BeforeTestCase
    def sampleBeforeTestCase(TestCaseContext testCaseContext) {
        String testCaseId = testCaseContext.getTestCaseId()
    }
}

这将返回路径:

../Katalon Studio/Test Cases/Test Case Name

然后我使用.substring()方法将测试用例名称存储为字符串

class TestCaseName {

    @BeforeTestCase
    def sampleBeforeTestCase(TestCaseContext testCaseContext) {
        String testCaseId = testCaseContext.getTestCaseId()
        GlobalVariable.testCaseName = testCaseId.substring((testCaseId.lastIndexOf("/").toInteger()) + 1)
    }
}

谢谢@Mate Mrse