如何在Katalon中自动获取测试用例运行耗时并输出到自定义报告?
在Katalon中自动获取测试用例耗时并输出到自定义报告的方法
下面提供几种实用的实现方式,按需选择即可:
方法一:用Test Listener全局监听所有测试用例
这是最省心的方式,能自动捕获每个测试用例的执行耗时:
- 在Katalon Studio中,右键点击
Test Listeners文件夹 →New→Test Listener - 实现
beforeTestCase和afterTestCase方法,记录前后时间戳并计算耗时,最后输出到自定义报告:
import com.kms.katalon.core.annotation.BeforeTestCase import com.kms.katalon.core.annotation.AfterTestCase import com.kms.katalon.core.context.TestCaseContext class ExecutionTimeTracker { private long startTime @BeforeTestCase def beforeTestCase(TestCaseContext testCaseContext) { startTime = System.currentTimeMillis() } @AfterTestCase def afterTestCase(TestCaseContext testCaseContext) { long endTime = System.currentTimeMillis() long elapsedMs = endTime - startTime // 转换为易读的格式,比如保留两位小数的秒 String timeTaken = String.format("%.2f 秒", elapsedMs / 1000.0) // 方式1:写入自定义文本报告 File reportFile = new File("./Reports/execution_time_report.txt") reportFile.append("测试用例ID: ${testCaseContext.getTestCaseId()} | 耗时: ${timeTaken}\n") // 方式2:把耗时存入测试用例变量,供后续自定义HTML报告调用 testCaseContext.setTestCaseVariable("caseExecutionTime", timeTaken) } }
方法二:在单个测试用例中手动记录耗时
如果只需要跟踪特定用例,直接在测试用例里加代码即可:
// 测试步骤开始前记录时间 long start = System.currentTimeMillis() // 这里写你的测试步骤 WebUI.openBrowser('') WebUI.navigateToUrl('https://your-test-url.com') // ...其他测试操作 // 测试步骤结束后计算耗时 long end = System.currentTimeMillis() long elapsedMs = end - start String timeTaken = String.format("%.1f 分钟", elapsedMs / 60000.0) // 写入CSV格式的自定义报告 String csvPath = "./Reports/test_results.csv" File csvFile = new File(csvPath) if (!csvFile.exists()) { csvFile.append("测试用例名称,耗时\n") } csvFile.append("${TestCaseName},${timeTaken}\n") WebUI.closeBrowser()
方法三:整合到Katalon默认报告中
如果想把耗时加到Katalon自带的HTML报告里:
- 找到Katalon安装目录下的
configuration/resources/templates/html/report_template.html,复制到项目的Resources文件夹 - 修改复制后的模板,添加显示耗时的字段(比如在测试用例详情区域加入
<p>耗时:${testCase.customFields.caseExecutionTime}</p>) - 用方法一中的监听器把耗时存入
caseExecutionTime变量,执行测试后就能在默认报告中看到耗时
注意事项
- 自定义报告路径建议用项目相对路径,避免权限问题
- 时间单位可根据需求调整(毫秒、秒、分钟)
- 执行测试套件时,监听器会自动为每个用例单独计算耗时
内容的提问来源于stack exchange,提问作者TaraNG
相关产品推荐
相关产品推荐

