# ui_automation **Repository Path**: zhouzy_99/ui_automation ## Basic Information - **Project Name**: ui_automation - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-07 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UI自动化测试指南 ## 项目简介 本项目是一个基于Selenium和Pytest的UI自动化测试框架,用于测试测试管理平台的前端界面功能。 ## 环境要求 - Python 3.8+ - Chrome/Firefox/Edge 浏览器 - Node.js (用于启动前端服务) ## 安装步骤 1. **安装依赖** ```bash cd ui_automation pip install -r requirements.txt ``` 2. **启动前端服务** ```bash cd ../frontend npm install npm run dev ``` 3. **启动后端服务** ```bash cd ../backend pip install -r requirements.txt python -m app.main ``` ## 测试启动方式 ### 1. 基本启动 运行所有测试用例: ```bash cd ui_automation pytest ``` 运行指定测试文件: ```bash pytest tests/test_login.py pytest tests/test_register.py ``` 运行指定测试用例: ```bash pytest tests/test_login.py::test_login pytest tests/test_register.py::test_register ``` ### 2. 多进程启动 使用 pytest-xdist 插件进行多进程并行测试,提高测试速度: ```bash # 安装 pytest-xdist pip install pytest-xdist # 使用4个进程运行测试 pytest -n 4 # 使用自动检测的进程数运行测试 pytest -n auto ``` ### 3. 生成Allure报告 1. **安装Allure命令行工具** 下载地址:https://github.com/allure-framework/allure2/releases 解压后将bin目录添加到系统环境变量 2. **运行测试并生成Allure结果** ```bash pytest --alluredir=reports/allure-results ``` 3. **生成Allure报告** ```bash allure generate reports/allure-results -o reports/allure-report --clean ``` 4. **查看Allure报告** ```bash allure open reports/allure-report ``` ### 4. 生成HTML报告 使用 pytest-html 插件生成HTML格式的测试报告: ```bash # 安装 pytest-html pip install pytest-html # 运行测试并生成HTML报告 pytest --html=reports/test_report.html # 生成带详细信息的HTML报告 pytest --html=reports/test_report.html --self-contained-html ``` ## 测试配置 测试配置位于 `config/config.py` 文件中,可通过环境变量覆盖默认配置: | 环境变量 | 说明 | 默认值 | |---------|------|-------| | BROWSER | 浏览器类型 (chrome/firefox/edge) | chrome | | HEADLESS | 是否以无头模式运行 | False | | BASE_URL | 前端服务地址 | http://localhost:5173 | | TEST_USERNAME | 测试用户名 | admin | | TEST_PASSWORD | 测试密码 | 123456 | 示例: ```bash # 使用Firefox浏览器运行测试 BROWSER=firefox pytest # 以无头模式运行测试 HEADLESS=True pytest ``` ## 测试数据管理 测试数据存储在 `data/test_data.json` 文件中,包含登录和注册功能的测试用例数据。 ## 常见问题解决 1. **Chrome浏览器无法启动** - 确保Chrome浏览器已安装 - 确保ChromeDriver版本与Chrome浏览器版本匹配 - 尝试以无头模式运行测试 2. **前端服务不可用** - 确保前端服务已启动 - 检查BASE_URL配置是否正确 3. **测试报告生成失败** - 确保Allure命令行工具已正确安装 - 确保reports目录存在 4. **测试用例执行失败** - 检查前端页面元素是否发生变化 - 检查测试数据是否正确 - 检查网络连接是否正常 ## 项目结构 ``` ui_automation/ ├── base/ # 基础类 │ ├── base_page.py # 页面对象基类 │ └── driver.py # 浏览器驱动管理 ├── config/ # 配置文件 │ └── config.py # 测试配置 ├── data/ # 测试数据 │ └── test_data.json # 测试用例数据 ├── pages/ # 页面对象 │ ├── login_page.py # 登录页面 │ ├── register_page.py # 注册页面 │ └── dashboard_page.py # 仪表盘页面 ├── tests/ # 测试用例 │ ├── test_login.py # 登录测试 │ └── test_register.py # 注册测试 ├── utils/ # 工具类 │ ├── assertion_utils.py # 断言工具 │ ├── data_manager.py # 数据管理 │ └── logger.py # 日志管理 ├── conftest.py # pytest配置 ├── pytest.ini # pytest配置文件 ├── requirements.txt # 依赖项 └── README.md # 本文件 ``` ## 最佳实践 1. **使用页面对象模式**:将页面元素和操作封装到页面对象类中 2. **数据驱动测试**:使用JSON文件管理测试数据 3. **断言分离**:将断言逻辑封装到断言工具类中 4. **日志记录**:使用logger记录测试过程 5. **异常处理**:合理处理测试过程中的异常 6. **并行测试**:使用多进程加速测试执行 7. **报告生成**:使用Allure或HTML报告查看测试结果 ## 联系方式 如有问题,请联系测试团队。