在Katalon中运行测试用例时如何获取经过的时间?

问题描述 投票:0回答:2

在 Katalon 中运行测试用例时,它会在日志查看器中显示该测试用例的运行时间,我希望自动获取该运行时间以输出到自定义报告中。我怎样才能得到这个经过的时间?

java katalon-studio elapsedtime katalon
2个回答
0
投票

我猜您正在使用脚本视图。

这样做:

import groovy.time.TimeCategory
import groovy.time.TimeDuration

start = new Date()

// execute the test

end = new Date()

TimeDuration td = TimeCategory.minus(end, start)
println td

0
投票

为了扩展@Mate Mrse的答案,让我们执行以下操作:

创建自定义关键字,或类似的东西

我们称之为自定义关键字

ElapsedTimeUtil

import groovy.time.TimeCategory
import groovy.time.TimeDuration

package com.tarang.utils

public class ElapsedTimeUtil { 
    private static final ElapsedTimeUtil _instance;

    private Date startTime;

    public static ElapsedTimeUtil GetInstance() {
        if (_instance == null)
            _instance = new ElapsedTimeUtil();

        return _instance;
    }

    private ElapsedTimeUtil() {
        // this is deliberately left empty, for semantic reasons
    }

    public void startTimer() {
        this.startTime = new Date();
    }

    public TimeDuration getElapsedTime() {
        return TimeCategory.minus(new Date(), this.startTime);
    }

    // a nifty helper function that allows us to re-use this util class to benchmark other test cases in a test suite
    public static void TearDown() {
        this._instance = null;
    }
}

请注意,在这个 util 类中,我添加了一个方法来拆除单例实例,允许您重新使用这个 util 类来对测试套件中的其他测试用例进行基准测试(测试它与在一个循环)。

另请注意,我们正在使用 Groovy 的内置

TimeDuration
类(这里是文档)。

使用 Test Case Listener

设置此自定义关键字

按照链接的说明创建您的测试监听器。

然后,我们执行以下操作:

初始化

在您的

@BeforeTestCase
挂钩中,添加以下内容:

ElapsedTimeUtil.GetInstance().startTimer();

拆解

这是可选的,如果您正在运行测试套件,并且您想要对所有测试用例进行基准测试。您可以选择以下两种方式之一:

  • @AfterTestCase
    挂钩中,或者
  • 在测试套件的
    tearDownTestCase
    挂钩中(从注释中删除
    (skipped = true)

无论哪种方式,请添加以下内容:

ElapsedTimeUtil.getElapsedTime(); // TODO: pass this to your report util keyword

ElapsedTimeUtil.TearDown();

为了完整性,前者是首选,并且无论测试套件或测试用例如何都会发生

© www.soinside.com 2019 - 2024. All rights reserved.