# UI-Test **Repository Path**: YunAbove/ui-test ## Basic Information - **Project Name**: UI-Test - **Description**: UI-AUTO:专注于UI自动化测试的开源项目,提供高效的测试框架和工具,支持多种平台和语言,助力开发者提升测试效率与质量。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2026-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DOSS UI 自动化测试项目 (ui-test) 基于 Python 的企业级 UI 自动化测试项目,集成 Selenium 和 Playwright 双框架,采用 Page Object Model (POM) 设计模式,提供完整的登录功能测试解决方案。 ## 主要特性 - **双框架支持**:同时支持 Selenium 和 Playwright,满足不同场景需求 - **Page Object Model**:页面元素和操作封装,提高可维护性和复用性 - **企业级日志系统**:独立日志文件、日志轮转、自动归档 - **配置管理**:YAML 配置文件,支持多环境切换 - **全面测试覆盖**:功能测试、兼容性测试、安全性测试、性能测试 - **参数化测试**:数据驱动,提高测试覆盖率 - **数据库集成**:连接池、参数化查询、事务管理 ## 项目结构 ``` ui-test/ ├── main.py # Selenium 测试入口 ├── playwright_test.py # Playwright 测试入口 ├── config/ # 配置目录 │ ├── config.py # 配置管理模块 │ ├── config.yaml # YAML 配置文件 │ └── auth_token.txt # 认证令牌 ├── pages/ # Page Object Model │ └── login_page.py # 登录页面 PO ├── tests/ # 测试用例 │ └── login/ │ ├── TEST_CASES.md # 测试用例文档 │ ├── test_data.py # 测试数据 │ ├── test_login_functional.py # 功能测试 │ ├── test_login_compatibility.py # 兼容性测试 │ ├── test_login_security.py # 安全性测试 │ ├── test_login_performance.py # 性能测试 │ └── test_login_parametrized.py # 参数化测试 ├── utils/ # 工具目录 │ ├── auth_utils.py # 认证工具 │ ├── db/ # 数据库工具 │ │ ├── connection.py # 数据库连接管理 │ │ ├── crud.py # CRUD 操作 │ │ ├── transaction.py # 事务管理 │ │ └── cache.py # 缓存管理 │ └── logs/ # 日志工具 │ ├── core.py # 核心日志功能 │ ├── config.py # 日志配置 │ └── archive.py # 日志归档 ├── docs/ # 文档 ├── auto_test_suite/ # 自动化测试套件 └── logs/ # 日志输出 ``` ## 快速开始 ### 安装 ```bash # 创建虚拟环境 python -m venv .venv source .venv/bin/activate # Linux/Mac # .venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 安装 Playwright 浏览器 playwright install ``` ### 配置 编辑 `config/config.yaml`: ```yaml base_url: "https://test.doss.donson.com.cn" browser: type: "chromium" timeout: 30 headless: false credentials: username: "" password: "" database: host: "" port: 3306 user: "" password: "" db: "" charset: "utf8mb4" ``` > 敏感信息(密码等)建议通过环境变量设置,不写入 `config.yaml`。 ### 运行测试 ```bash # Playwright 测试 python playwright_test.py # Selenium 测试 python main.py # 功能测试 pytest tests/login/test_login_functional.py -v # 兼容性测试 pytest tests/login/test_login_compatibility.py -v # 安全性测试 pytest tests/login/test_login_security.py -v # 性能测试 pytest tests/login/test_login_performance.py -v # 参数化测试 pytest tests/login/test_login_parametrized.py -v ``` ## 测试覆盖 | 类型 | 内容 | 文件 | |------|------|------| | 功能测试 | 正常/异常登录、登录后跳转验证 | `test_login_functional.py` | | 兼容性测试 | 不同浏览器、分辨率、网络环境 | `test_login_compatibility.py` | | 安全性测试 | 密码安全、登录尝试限制、敏感信息保护 | `test_login_security.py` | | 性能测试 | 登录响应时间、页面加载时间、并发登录 | `test_login_performance.py` | | 参数化测试 | 数据驱动多场景覆盖 | `test_login_parametrized.py` | ## 技术栈 | 技术 | 用途 | |------|------| | Python 3.8+ | 开发语言 | | Selenium | Web 自动化 | | Playwright | 现代 Web 自动化 | | pytest | 测试框架 | | PyMySQL | 数据库操作 | | PyYAML | 配置管理 | ## 注意事项 - 遵循 POM 设计模式,页面元素变更只需修改 `pages/` 对应文件 - 使用配置管理避免硬编码,敏感信息通过环境变量设置 - `.codegraph/` 是 Claude Code 本地代码索引目录,已加入 `.gitignore` - 日志系统已配置自动轮转,避免日志文件过大 ## 版本历史 - **v1.0.0**:初始版本,Selenium + Playwright 双框架集成 - **v1.1.0**:POM 模式重构;企业级日志系统 - **v1.2.0**:数据库工具模块(连接池/事务/缓存) - **v1.3.0**:全面测试用例覆盖(功能/兼容/安全/性能/参数化);CodeGraph 集成 ## 相关项目 - [DOSS 接口自动化测试框架](https://gitee.com/YunAbove/api_test) - [DOSS 智能测试中心](https://gitee.com/YunAbove/test-center)