代码改变世界

我的第一个自动化测试用例:从零开始的Selenium实战指南 - 实践

2025-12-01 21:37  tlnshuju  阅读(0)  评论(0)    收藏  举报

1.前言

作为一名软件测试新手,今天我终于完成了第一个Web自动化测试用例!本文将完整记录我的学习历程,从环境搭建到代码实现,为同样想入门自动化测试的朋友提供一份详细的指南。

2.环境准备:工欲善其事,必先利其器

开始之前的环境准备:

       ,选择免费的Community版本,即可满足学习需求,安装过程简单,一直点击"Next"即可

        )

       安装步骤:下载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注解:标识这是一个测试方法

方法执行流程

  1. driver.get("https://www.baidu.com"):导航到百度首页

  2. driver.getTitle():获取当前页面的标题

  3. System.out.println():在控制台输出标题,便于调试

  4. assertTrue(title.contains("百度")):断言验证标题是否包含"百度"二字

断言的重要性:断言是自动化测试的核心,它验证实际结果是否符合预期。

5. 测试清理方法 - @AfterEach

@AfterEach
public void tearDown() {
    if (driver != null) {
        driver.quit();
    }
}

@AfterEach注解:在每个测试方法执行后运行

方法作用

  • 检查driver不为null后,调用driver.quit()关闭浏览器

  • 释放系统资源,避免浏览器进程残留

6.测试生命周期

理解测试执行顺序很重要:

  1. setUp() → 2. testOpenBaidu() → 3. tearDown()

这种"准备-执行-清理"的模式确保了每个测试的独立性。

7.运行结果

当运行这个测试时,你会看到:

  1. Edge浏览器自动启动并最大化

  2. 浏览器访问百度首页

  3. 控制台输出:"页面标题: 百度一下,你就知道"

  4. 测试通过(绿色对勾)

  5. 浏览器自动关闭

8.结语

这个简单的自动化测试用例虽然只有20多行代码,但却包含了Web自动化测试的核心概念。对于初学者来说,理解这个基础用例是迈向自动化测试专家的重要第一步。

希望我的学习笔记能够帮助到同样在自动化测试道路上探索的你!如果你也正在学习Selenium,欢迎交流讨论。