1. 项目概述
最近在测试领域摸爬滚打多年,发现UI自动化测试已经成为测试工程师的必备技能。这次我想分享一个基于Pytest+Selenium的实战项目,目标是构建一个完整的126邮箱自动化测试框架。这个项目不仅包含了基础的页面操作封装,还实现了数据驱动、PageObject模式等高级特性,最后还能自动生成漂亮的HTML测试报告并邮件发送。
这个框架特别适合需要频繁回归测试的Web应用场景。相比传统手工测试,它能将测试效率提升5-10倍。我在实际项目中用它完成了126邮箱三大核心功能的自动化测试:登录验证、联系人管理和邮件发送,测试用例覆盖了正常场景和异常场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与配置
2.1 基础环境搭建
工欲善其事,必先利其器。在开始编码前,我们需要准备好测试环境。以下是必须安装的组件清单:
- Python 3.6+(推荐3.8版本,兼容性最好)
- PyCharm IDE(社区版就够用)
- Selenium 3.141.0(稳定版)
- 浏览器驱动(ChromeDriver或GeckoDriver)
安装这些依赖其实很简单,一行命令就能搞定:
bash复制pip install selenium pytest pytest-html pypiwin32 openpyxl yagmail
注意:安装pypiwin32时如果报错,可以尝试先安装pywin32。这两个库在Windows系统下是模拟键盘操作的关键。
2.2 浏览器驱动配置
浏览器驱动是Selenium控制浏览器的桥梁。以Chrome为例:
- 查看Chrome浏览器版本(在地址栏输入chrome://version/)
- 下载对应版本的ChromeDriver(建议选择最新稳定版)
- 将chromedriver.exe放在Python安装目录的Scripts文件夹下
- 或者将其路径添加到系统环境变量PATH中
验证是否配置成功:
python复制from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
如果浏览器能自动打开并访问百度,说明环境配置正确。
3. 框架设计与实现
3.1 项目目录结构
良好的目录结构是框架可维护性的基础。我的项目结构如下:
code复制PytestAutoTestFrameWork
├── config # 配置文件
│ ├── __init__.py
│ ├── conf.py
│ └── config.ini
├── data # 测试数据
│ ├── __init__.py
│ └── tcData.xlsx
├── Page # 页面对象
│ ├── BasePage.py
│ ├── ContactPage.py
│ ├── HomePage.py
│ ├── LoginPage.py
│ └── SendMailPage.py
├── report # 测试报告
├── TestCases # 测试用例
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_confactCase.py
│ ├── test_loginCase.py
│ └── test_sendMailCase.py
└── util # 工具类
