在 Katalon 中运行测试用例时,它会在日志查看器中显示该测试用例的运行时间,我希望自动获取该运行时间以输出到自定义报告中。我怎样才能得到这个经过的时间?
我猜您正在使用脚本视图。
这样做:
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
为了扩展@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
类(这里是文档)。
按照链接的说明创建您的测试监听器。
然后,我们执行以下操作:
在您的
@BeforeTestCase
挂钩中,添加以下内容:
ElapsedTimeUtil.GetInstance().startTimer();
这是可选的,如果您正在运行测试套件,并且您想要对所有测试用例进行基准测试。您可以选择以下两种方式之一:
@AfterTestCase
挂钩中,或者 tearDownTestCase
挂钩中(从注释中删除 (skipped = true)
)无论哪种方式,请添加以下内容:
ElapsedTimeUtil.getElapsedTime(); // TODO: pass this to your report util keyword
ElapsedTimeUtil.TearDown();
为了完整性,前者是首选,并且无论测试套件或测试用例如何都会发生