Web 自动化测试入门:从概念到百度搜索实战
自动化的核心逻辑
自动化测试的本质,是用程序替代人工重复操作。生活中常见的自动洒水机、超市闸机都是这个逻辑——减少人力消耗,提升效率和质量。
在软件领域,它的核心目的很明确:回归测试。当新版本上线时,我们需要验证新增功能有没有把旧功能搞挂。这里有个面试常考点:自动化不能完全取代人工。脚本需要人写,功能变更后还得维护,可靠性未必比人高;它也不能'大幅度降低工作量',只能'一定程度'减少重复劳动,表述要严谨。
分类与金字塔模型
自动化是个统称,主要分接口和 UI 两类。UI 自动化里又分移动端和 Web 端。以 Web 为例,就是模拟浏览器打开百度、输入搜索、点击验证,替代人工流程。
关于测试投入,业界有个经典的自动化测试金字塔理论:
- 理想模型:底层是单元测试,中间是 API/集成测试,顶层是 UI 自动化。越往下,投入产出比越高,发现问题越早;越往上,资源消耗越大,回报越低。
- 现实模式:很多企业其实是倒过来的'冰淇淋蛋筒模式'。因为底层自动化搭建难、周期长,企业往往优先做'看得见效果'的 UI 层,但长期来看,底层自动化的成本收益更优。
结论很简单:底层自动化(单元、接口)负责长期降本保质量,上层测试(UI、手动)负责覆盖复杂场景和探索性验证,两者互补。
驱动与管理工具
要让代码控制浏览器,得靠WebDriver。它就像汽车的发动机或电脑的驱动程序,是程序与浏览器通信的桥梁。没有它,代码没法指挥浏览器干活。
手动下载匹配驱动版本很麻烦,这时候可以用 WebDriverManager。这是个开源 Java 库,能自动管理 Selenium 所需的驱动(如 ChromeDriver),识别本地浏览器版本并自动下载对应驱动。引入依赖后,环境搭建成本大幅降低,脚本可维护性也提升了。
<!-- Maven 依赖示例 -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.6.2</version>
</dependency>
Selenium 实战:百度搜索脚本
Selenium 是主流 Web 自动化工具,提供丰富的 API 模拟人工操作。下面我们以'百度搜索'为例,看看怎么落地。
1. 环境准备
项目里需要引入 Selenium 的 Java 库依赖:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java
4.15.0


