📅  最后修改于: 2023-12-03 15:22:17.141000             🧑  作者: Mango
TestNG 是一个流行的 Java 测试框架,它与 Selenium WebDriver 配合使用可以实现完整的自动化测试。在测试中,通常需要使用断言来验证测试结果是否符合预期。本文将介绍如何在 TestNG 中使用断言来检查 Selenium WebDriver 中的测试结果。
在使用 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 包引入项目中。
创建一个 Java 类并使用 @Test 注解来标记测试方法。例如:
import org.testng.annotations.Test;
public class MyTest {
@Test
public void myTest() {
// 测试代码
}
}
TestNG 将会运行该类中的所有被 @Test 注解标记的方法。
在测试方法中,使用 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 方法来检查搜索结果页面中是否包含“TestNG”相关信息:
Assert.assertTrue(bodyText.contains("TestNG"));
如果搜索结果页面中包含“TestNG”相关信息,则该断言通过;否则,测试将失败并显示相应的错误信息。
在使用 Selenium WebDriver 进行自动化测试的过程中,使用 TestNG 进行断言可以帮助我们快速判断测试结果是否符合预期。TestNG 提供了丰富的断言方法,可以方便地进行各种类型的测试,从而提高测试效率和可靠性。