1.简介
TestNG为日志记录和报告提供的不同选项。现在,宏哥讲解分享如何开始使用它们。首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录。
2.TestNG自定义日志
2.1创建测试用例类
1.按照宏哥前边的方法,创建一个TestNG类,并命名为:TestLog。这里宏哥直接沿用上一篇文章中的测试类。如下图所示:
2.然后进行脚本编辑,前面的测试类包含三个测试方法,其中OpenBrowser和LogOut将在执行时通过,而SignIn通过将false布尔值传递给 Assert.assertTrue 方法而失败,该方法用于测试中的真值条件。代码设计如下图所示:
3.参考代码如下:
代码语言:javascript复制package library;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;
/**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
*《手把手教你》系列基础篇(八十五)-java selenium自动化测试-框架设计基础-TestNG日志(详解教程)
*
* 2022年3月17日
*/
public class TestLog {
@Test
public void OpenBrowser() {
Assert.assertTrue(true);
System.out.println("OpenBrowser被调用!");
Reporter.log("调用打开浏览器的方法!");
}
@Test(dependsOnMethods = {"OpenBrowser"})
public void SignIn() {
Assert.assertTrue(false);
System.out.println("SignIn方法被调用!");
Reporter.log("调用登录方法!");
}
@Test(dependsOnMethods = {"SignIn"})
public void LogOut() {
Assert.assertTrue(true);
System.out.println("LogOut方法被调用!");
Reporter.log("调用注销方法!");
}
}
2.2创建自定义日志类
1.在 F:/workspace/Bjhg_Selenium/src/library中创建另一个命名为的新类 CustomReporter.java ,如下图所示:
2.代码设计如下图所示:
上面的类扩展了TestListenerAdapter,它使用空方法实现了ITestListener。因此,无需从接口覆盖其他方法。如果您愿意,您可以直接实现该接口。
3.参考代码如下:
代码语言:javascript复制package library;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
/**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
*《手把手教你》系列基础篇(八十五)-java selenium自动化测试-框架设计基础-TestNG日志(详解教程)
*
* 2022年3月17日
*/
public class CustomListener extends TestListenerAdapter {
private int m_count = 0;
@Override
public void onTestFailure(ITestResult tr) {
log(tr.getName() "--Test method failedn");
}
@Override
public void onTestSkipped(ITestResult tr) {
log(tr.getName() "--Test method skippedn");
}
@Override
public void onTestSuccess(ITestResult tr) {
log(tr.getName() "--Test method successn");
}
private void log(String string) {
System.out.print(string);
if ( m_count % 40 == 0) {
System.out.println("");
}
}
}
2.3创建testng.xml
1.在F:/workspace/Bjhg_Selenium/src中创建 testng.xml 执行测试用例。如下图所示:
2.参考XML文件内容如下:
代码语言:javascript复制<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Reporter Suite">
<listeners>
<listener class-name = "library.CustomListener" />
</listeners>
<test name = "Simple Reporter test" >
<classes>
<class name = "library.TestLog" />
</classes>
</test>
</suite>
2.4运行代码
1.选中testng.xml文件,右键Run AS点击Test Suit运行。如下图所示:
2.控制台输出,如下图所示:
2.5查看测试报告中日志
3.小结
我们创建了一个自定义记录器类,它实现了 ITestListener 接口并将其作为一个监听器附加到 TestNG 测试套件中。这个侦听器类的方法在测试开始、测试失败、测试成功等时由 TestNG 调用。可以实现多个侦听器并将其添加到测试套件执行中,TestNG 将调用附加到测试套件的所有侦听器。
日志侦听器主要用于在测试执行时我们需要查看测试执行的连续状态。