TestNG 监听器

17 Mar 2025 | 4 分钟阅读

TestNG 提供了 @Listeners 注解,它可以监听 Selenium 代码中发生的每个事件。监听器在测试之前或测试用例之后被激活。它是一个修改 TestNG 行为的接口。 例如,当您通过 Selenium 或 Appium 运行一个测试用例,突然一个测试用例失败。 我们需要获取已失败的测试用例的屏幕截图,为了实现这样的场景,TestNG 提供了一种机制,即监听器。 当测试用例失败时,它会被重定向到为屏幕截图编写的新代码块。

监听器通过 ITestListener 接口实现。ITestListener 接口有以下方法:

TestNG Listeners

onTestStart(): onTestStart() 仅在任何测试方法启动时调用。

onTestSuccess(): onTestSuccess() 方法在测试方法成功后执行。

onTestFailure(): onTestFailure() 方法在测试方法失败时调用。

onTestSkipped(): onTestSkipped() 仅在任何测试方法被跳过时运行。

onTestFailedButWithinSuccessPercentage(): 此方法在测试方法失败但仍在成功率范围内时每次都会被调用。

onStart(): onStart() 方法在任何测试方法开始时执行。

onFinish(): onFinish() 在任何测试用例完成执行时调用。

如何创建 TestNG 监听器

我们可以通过两种方式创建 TestNG 监听器。 首先,我们可以在类中使用 @Listeners 注解,第二种方式是使用在 suite 中。

第一种情况: 首先,我们将在类中创建监听器。

步骤 1:打开 Eclipse。

步骤 2:我们创建一个简单的项目。

在上面的代码中,我们创建了两个测试用例,即 sum() 和 testtofail()。

Listener.java

当 sum() 测试用例已通过时,TestNG 调用 onTestSuccess() 监听器。 当 testtofail() 测试用例已失败时,TestNG 调用 onTestFailure() 监听器。

步骤 3: 现在,我们创建 testng.xml 文件。

步骤 4: 运行 testng.xml 文件。 右键单击 testng.xml 文件,将光标向下移动到 Run As,然后单击 1 TestNG Suite

TestNG Listeners

上面的输出显示 sum() 测试用例已通过,而 testtofail() 测试用例已失败。

第二种情况: 现在我们通过使用 testng.xml 文件来创建监听器。

步骤 1: 打开 Eclipse。

步骤 2: 我们将创建两个 Java 项目。 一个 Java 项目包含测试用例,另一个项目包含监听器。

Testcases.java

Listener.java

步骤 3: 现在,我们创建 testng.xml 文件。

testng.xml

步骤 4: 运行 testng.xml 文件。

输出

TestNG Listeners

注意:当将监听器添加到多个类时,可能会出现错误。 如果通过 testng.xml 文件实现监听器,则它们将应用于所有类。


下一主题#