我有一个TestNG结果监听器,我从我的Suite文件中引用
<!-- Result Listener -->
<listeners>
<listener class-name="com.test.automation.testng.ResultListener" methods="generateReport"/>
</listeners>
我使用结果监听器写入数据库并将所有测试结果存储在mysql中。这很好用,除了现在我想添加一些自定义信息,例如我在测试中只能访问的计时数据。不是实际测试的时间,所以我不能只使用开始和结束时间。
有没有办法将自定义对象传递给我的结果侦听器或套件结果对象,这样我就可以在我的侦听器中使用它来向数据库写入更多信息。
答案 0 :(得分:3)
您可以使用
Reporter.getCurrentTestResult().setAttribute(name,value)
然后使用结果对象来获取属性。
答案 1 :(得分:0)
这样的东西可以用作黑客 -
Reporter.log("Time:"+time); // in the test
然后在听众中
public void onTestFailure(ITestResult arg0) {
Reporter.getOutput(arg0); // this will fetch that log and you can parse it and make it meaningful
}
当然,这会将所有日志作为List获取,您必须对其进行处理。