我的第一个自动化测试用例:从零开始的Selenium实战指南 - 实践
2025-12-01 21:37 tlnshuju 阅读(0) 评论(0) 收藏 举报1.前言
作为一名软件测试新手,今天我终于完成了第一个Web自动化测试用例!本文将完整记录我的学习历程,从环境搭建到代码实现,为同样想入门自动化测试的朋友提供一份详细的指南。
2.环境准备:工欲善其事,必先利其器
开始之前的环境准备:
IntelliJ IDEA开发工具(官网:https://www.jetbrains.com/idea/
,选择免费的Community版本,即可满足学习需求,安装过程简单,一直点击"Next"即可
)
Maven项目管理(下载地址:https://maven.apache.org/download.cgi
配置方法:解压下载的压缩包,配置环境变量:
MAVEN_HOME:Maven解压路径,PATH:添加%MAVEN_HOME%\bin)Java 21(下载地址:Oracle官网:https://www.oracle.com/java/technologies/downloads/
安装步骤:下载JDK 21安装包,运行安装程序,记住安装路径,配置环境变量:JAVA_HOME
JDK安装路径,PATH:添加%JAVA_HOME%\bin
验证安装:终端输入:java -version,点击回车后应显示:java version "21" ...)
Selenium 4.38.0(通过Maven依赖管理自动下载,下边配置文件pom.xml中有)
JUnit 5测试框架(通过Maven依赖管理自动下载,下边配置文件pom.xml中有)
3.完整代码实现
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver; //本文的代码使用的是edge的驱动
import org.openqa.selenium.chrome.ChromeDriver; //谷歌浏览器驱动
import org.openqa.selenium.firefox.FirefoxDriver;//火狐浏览器驱动
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import static org.junit.jupiter.api.Assertions.*;
public class MyFirstTest {
WebDriver driver;
@BeforeEach
public void setUp() {
// 设置 Edge 浏览器,将EdgeDriver换成ChromeDriver即为谷歌浏览器、FirefoxDriver是火狐
driver = new EdgeDriver();
// 最大化窗口
driver.manage().window().maximize();
}
@Test
public void testOpenBaidu() {
// 打开百度网站
driver.get("https://www.baidu.com");
// 获取页面标题
String title = driver.getTitle();
System.out.println("页面标题: " + title);
// 验证标题包含"百度"
assertTrue(title.contains("百度"), "标题应该包含'百度'");
}
@AfterEach
public void tearDown() {
// 关闭浏览器
if (driver != null) {
driver.quit();
}
}
}
4.核心配置文件 :pom.xml
4.0.0
org.example
untiltedone
1.0-SNAPSHOT
21
21
UTF-8
org.junit.jupiter
junit-jupiter
5.9.3
test
org.seleniumhq.selenium
selenium-java
4.38.0
//完整多浏览器支持pom.xml依赖
org.seleniumhq.selenium
selenium-java
4.38.0
org.seleniumhq.selenium
selenium-edge-driver
4.38.0
org.seleniumhq.selenium
selenium-chrome-driver
4.38.0
org.seleniumhq.selenium
selenium-firefox-driver
4.38.0
5.代码详细解析
1. 导入语句(Import Statements)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import static org.junit.jupiter.api.Assertions.*;
作用:这些import语句引入了我们需要的类和方法:
WebDriver:Selenium的核心接口,用于控制浏览器EdgeDriver:Edge浏览器的具体实现JUnit注解:
@Test、@BeforeEach、@AfterEach断言方法:
assertTrue用于验证测试结果
2. 测试类定义
public class MyFirstTest {
WebDriver driver;
这里定义了一个公共测试类MyFirstTest,并声明了一个WebDriver类型的成员变量driver,它将在整个测试过程中控制浏览器。
3. 测试准备方法 - @BeforeEach
@BeforeEach
public void setUp() {
driver = new EdgeDriver();
driver.manage().window().maximize();
}
@BeforeEach注解:表示在每个测试方法执行前都会运行此方法
方法作用:
new EdgeDriver():启动Edge浏览器实例window().maximize():将浏览器窗口最大化,确保页面元素可见
4. 核心测试方法 - @Test
@Test
public void testOpenBaidu() {
driver.get("https://www.baidu.com");
String title = driver.getTitle();
System.out.println("页面标题: " + title);
assertTrue(title.contains("百度"), "标题应该包含'百度'");
}
@Test注解:标识这是一个测试方法
方法执行流程:
driver.get("https://www.baidu.com"):导航到百度首页driver.getTitle():获取当前页面的标题System.out.println():在控制台输出标题,便于调试assertTrue(title.contains("百度")):断言验证标题是否包含"百度"二字
断言的重要性:断言是自动化测试的核心,它验证实际结果是否符合预期。
5. 测试清理方法 - @AfterEach
@AfterEach
public void tearDown() {
if (driver != null) {
driver.quit();
}
}
@AfterEach注解:在每个测试方法执行后运行
方法作用:
检查driver不为null后,调用
driver.quit()关闭浏览器释放系统资源,避免浏览器进程残留
6.测试生命周期
理解测试执行顺序很重要:
setUp()→ 2.testOpenBaidu()→ 3.tearDown()
这种"准备-执行-清理"的模式确保了每个测试的独立性。
7.运行结果
当运行这个测试时,你会看到:
Edge浏览器自动启动并最大化
浏览器访问百度首页
控制台输出:"页面标题: 百度一下,你就知道"
测试通过(绿色对勾)
浏览器自动关闭
8.结语
这个简单的自动化测试用例虽然只有20多行代码,但却包含了Web自动化测试的核心概念。对于初学者来说,理解这个基础用例是迈向自动化测试专家的重要第一步。
希望我的学习笔记能够帮助到同样在自动化测试道路上探索的你!如果你也正在学习Selenium,欢迎交流讨论。
浙公网安备 33010602011771号