1

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

我在用:

testName = RunConfiguration.getExecutionSourceName().toString()

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

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

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

谢谢你。

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

4

2 回答 2

3

好的,所以我在@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

于 2019-07-16T18:07:42.610 回答
1

您可以使用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 因为我也想剪切反斜杠)之前的最后一个位置\(这就是正在做的事情)剪切字符串。lastIndexOfTest Case Name.tc

然后这个.substring()方法会给我切割后剩下的东西。

于 2019-07-15T06:48:45.207 回答