Web 自动化测试预习:起步与环境构建
这份笔记整理自「Web 自动化预习」课程资料,旨在建立对自动化测试的初步认知,并完成基础开发环境的搭建。
- 理解自动化测试的本质与适用场景。
- 构建基于 Python + Selenium 4 的 Web 自动化开发环境。
- 熟悉实战项目「读书屋」的业务背景与底层数据对接。
知识索引
1. 理论与选型:什么时候该用代码说话?
自动化不是对手工测试的简单替代,而是其能力的延伸。了解什么是自动化,以及哪些项目特征决定了它是否值得投入。
- 详见: 自动化测试:从手工到代码的跨越
2. 环境搭建:Selenium 4 与驱动管理
环境是自动化的第一步。涵盖 Python、PyCharm 的关联,以及浏览器驱动(Chromedriver)的配置逻辑。
3. 实战背景:读书屋项目全景
熟悉被测系统(SUT)是编写用例的前提。包括前后台地址、数据库连接信息以及第三方支付沙箱的配置。
4. 元素定位:Web 自动化之眼
精准定位是自动化的命门。除了 8 大基础定位,本节还深入探讨了 CSS/XPath 高级技巧及 Selenium 4 相对定位。
- 详见: Web自动化-元素定位方法全集
5. 等待机制:同步执行与页面状态
解决「代码跑太快,页面没跟上」的同步难题。对比三种等待方式,并提供最佳实践建议。
- 详见: Web自动化-等待机制详解
6. 控件交互:处理复杂 UI 场景
实战演练如何操作下拉框、单选/复选框以及应对 Iframe 窗口嵌套。
7. 弹窗与窗口:跨越浏览上下文
处理原生 JS 弹窗(Alert/Confirm/Prompt)以及在多标签页、多窗口间灵活穿梭。
- 详见: Web自动化-弹窗与多窗口管理
8. 深度模拟:复杂交互与滚动
利用 ActionChains 模拟悬停、拖拽、键盘组合键,并掌握 Selenium 4 最新的页面滚动技术。
9. 特殊元素处理:文件上传与日期控件
攻克「非 input 标签上传」和「只读日期控件」两大难题,掌握 PyAutoGUI 和 JS 属性修改黑科技。
10. 验证码难题:绕过与识别方案
系统总结 6 种验证码处理方案,包括 Cookie 绕过、复用浏览器以及基于 OpenCV + Tesseract 的 OCR 图像识别。
11. 框架决胜:Unittest 与 Pytest 对标
对比 Python 两大核心测试框架。从 Unittest 的四要素到 Pytest 的自动发现机制,选择最适合项目的骨架。
12. Pytest 进阶:从入门到数据驱动
深入研究 @pytest.mark.parametrize 实现 DDT,利用 conftest.py 共享 Fixture 上下文,并初步集成 Allure 报告。
13. 架构精要:构建自动化证据链
利用 Pytest Hook 钩子函数实现失败自动截图、日志注入及 Allure 动态 Bug 关联,解决 CI 环境下的排错难题。
阶段五:工程化与数据驱动 (Day 13 - 14)
13. 解耦思维:POM 架构设计 (Day 13)
理解 POM 分层思维,将页面定位与业务逻辑彻底分离。
14. 驱动实战:Excel / YAML / SQL (Day 14)
掌握工程级 DDT 方案,实现用例与数据的完美闭环。
阶段六:面试与复盘
- 原理题: WebDriver 协议 (W3C) 的三层结构是什么?
- 架构题: POM 模式下,BasePage 的主要职责是什么?
- 实战题: 如何在不修改代码的情况下,给所有失败用例加截图?
- 设计题: 如何在 YAML 用例中动态注入环境依赖参数?
预习先行,边听边练。遇到环境问题先看日志,反复尝试后再对照文档,保持环境纯净(虚拟环境是基础)。