You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Katalon中自动获取测试用例运行耗时并输出到自定义报告?

在Katalon中自动获取测试用例耗时并输出到自定义报告的方法

下面提供几种实用的实现方式,按需选择即可:

方法一:用Test Listener全局监听所有测试用例

这是最省心的方式,能自动捕获每个测试用例的执行耗时:

  1. 在Katalon Studio中,右键点击Test Listeners文件夹 → New → Test Listener
  2. 实现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报告里:

  1. 找到Katalon安装目录下的configuration/resources/templates/html/report_template.html,复制到项目的Resources文件夹
  2. 修改复制后的模板,添加显示耗时的字段(比如在测试用例详情区域加入<p>耗时:${testCase.customFields.caseExecutionTime}</p>)
  3. 用方法一中的监听器把耗时存入caseExecutionTime变量,执行测试后就能在默认报告中看到耗时

注意事项

  • 自定义报告路径建议用项目相对路径,避免权限问题
  • 时间单位可根据需求调整(毫秒、秒、分钟)
  • 执行测试套件时,监听器会自动为每个用例单独计算耗时

内容的提问来源于stack exchange,提问作者TaraNG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:32:15