📜  使用 TestNg 在Selenium WebDriver 中断言(1)

📅  最后修改于: 2023-12-03 15:22:17.141000             🧑  作者: Mango

使用 TestNG 在 Selenium WebDriver 中断言

TestNG 是一个流行的 Java 测试框架,它与 Selenium WebDriver 配合使用可以实现完整的自动化测试。在测试中,通常需要使用断言来验证测试结果是否符合预期。本文将介绍如何在 TestNG 中使用断言来检查 Selenium WebDriver 中的测试结果。

第一步:导入 TestNG 的依赖

在使用 TestNG 之前,需要将其引入项目中。如果使用 Maven 管理项目,可以在项目的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.4.0</version>
</dependency>

如果没有使用 Maven,可以从 TestNG 的官网(http://testng.org/doc/download.html)下载 TestNG 并将 jar 包引入项目中。

第二步:创建 TestNG 测试类

创建一个 Java 类并使用 @Test 注解来标记测试方法。例如:

import org.testng.annotations.Test;

public class MyTest {
    @Test
    public void myTest() {
        // 测试代码
    }
}

TestNG 将会运行该类中的所有被 @Test 注解标记的方法。

第三步:使用 Selenium WebDriver 进行测试

在测试方法中,使用 Selenium WebDriver 来模拟用户与页面的交互,并获取页面上的元素。例如:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

public class MyTest {
    @Test
    public void myTest() {
        // 启动 Chrome 浏览器
        WebDriver driver = new ChromeDriver();
        
        // 打开百度首页
        driver.get("https://www.baidu.com/");
        
        // 输入搜索关键字
        WebElement searchBox = driver.findElement(By.name("wd"));
        searchBox.sendKeys("TestNG");
        
        // 点击搜索按钮
        WebElement searchButton = driver.findElement(By.id("su"));
        searchButton.click();
        
        // 等待搜索结果加载完
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        // 验证搜索结果页面是否包含 TestNG 相关信息
        WebElement searchResult = driver.findElement(By.tagName("body"));
        String bodyText = searchResult.getText();
        Assert.assertTrue(bodyText.contains("TestNG"));
        
        // 关闭浏览器
        driver.quit();
    }
}

在该测试方法中,使用 Selenium WebDriver 打开百度首页,并输入搜索关键字“TestNG”,点击搜索按钮后等待搜索结果页面加载完毕。最后,使用断言来检查搜索结果页面中是否包含“TestNG”相关信息。如果符合预期,测试通过;否则,测试不通过。

第四步:使用断言检查测试结果

在使用 TestNG 进行断言时,可以使用 Assert 类提供的各种方法来检查测试结果是否符合预期。常用的方法包括:

  • assertTrue(boolean condition):判断一个条件是否为 true;
  • assertEquals(Object expected, Object actual):判断两个对象是否相等;
  • assertNotEquals(Object expected, Object actual):判断两个对象是否不相等;
  • assertNull(Object object):判断一个对象是否为 null;
  • assertNotNull(Object object):判断一个对象是否不为 null;
  • ...

例如,在上述测试方法中使用了 assertTrue 方法来检查搜索结果页面中是否包含“TestNG”相关信息:

Assert.assertTrue(bodyText.contains("TestNG"));

如果搜索结果页面中包含“TestNG”相关信息,则该断言通过;否则,测试将失败并显示相应的错误信息。

总结

在使用 Selenium WebDriver 进行自动化测试的过程中,使用 TestNG 进行断言可以帮助我们快速判断测试结果是否符合预期。TestNG 提供了丰富的断言方法,可以方便地进行各种类型的测试,从而提高测试效率和可靠性。