# ui_app **Repository Path**: Argus_Liu/ui_app ## Basic Information - **Project Name**: ui_app - **Description**: app的ui自动化 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Appium UI 自动化测试框架 ## 项目介绍 这是一个基于 Appium 的 UI 自动化测试框架,使用 Python 语言实现,采用 Page Object Model (POM) 设计模式,支持 Android 和 iOS 平台的应用测试。 ## 功能特点 - **模块化设计**:清晰的代码结构,便于扩展和维护 - **Page Object Model**:将页面元素和操作封装到页面类中,提高代码复用性 - **多环境配置**:支持开发、测试、生产环境的配置管理 - **丰富的工具类**:提供时间、设备、文件等辅助工具 - **详细的测试报告**:集成 Allure 测试报告,提供可视化测试结果 - **灵活的配置管理**:支持通过环境变量和 YAML 文件配置测试参数 ## 环境要求 - Python 3.7+ - Appium Server 2.0+ - Android SDK (Android 测试) - Xcode (iOS 测试) - Allure 命令行工具 (可选,用于生成测试报告) ## 安装步骤 1. **克隆项目** ```bash git clone <项目地址> cd app_ui ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **配置环境** - 复制 `.env.example` 文件为 `.env` - 根据实际情况修改 `.env` 文件中的配置项 4. **启动 Appium Server** ```bash appium ``` ## 配置说明 ### 环境变量配置 (.env 文件) | 配置项 | 说明 | 默认值 | |-------|------|-------| | APPIUM_HOST | Appium 服务器主机地址 | 127.0.0.1 | | APPIUM_PORT | Appium 服务器端口 | 4723 | | DEVICE_NAME | 设备名称 | Android Emulator | | PLATFORM_NAME | 平台名称 (Android/iOS) | Android | | PLATFORM_VERSION | 平台版本 | 11 | | APP_PACKAGE | 应用包名 | com.example.app | | APP_ACTIVITY | 应用启动 Activity | com.example.app.MainActivity | | APP_PATH | 应用安装包路径 | (空) | | ENV | 环境 (dev/test/prod) | dev | | IMPLICIT_WAIT | 隐式等待时间 (秒) | 10 | | EXPLICIT_WAIT | 显式等待时间 (秒) | 30 | | ALLURE_REPORT_DIR | Allure 报告目录 | reports/allure-results | | DEV_APP_PACKAGE | 开发环境应用包名 | com.example.app.dev | | TEST_APP_PACKAGE | 测试环境应用包名 | com.example.app.test | | PROD_APP_PACKAGE | 生产环境应用包名 | com.example.app | ### YAML 配置文件 (可选) 除了环境变量,还可以使用 YAML 文件配置测试参数。创建 `config.yaml` 文件并按照以下格式编写: ```yaml APPIUM_HOST: 127.0.0.1 APPIUM_PORT: 4723 DEVICE_NAME: Android Emulator PLATFORM_NAME: Android PLATFORM_VERSION: 11 APP_PACKAGE: com.example.app APP_ACTIVITY: com.example.app.MainActivity ``` ## 使用方法 ### 运行测试 ```bash # 运行所有测试 python run_test.py # 运行指定测试文件 python -m pytest tests/test_login.py -v # 运行指定测试方法 python -m pytest tests/test_login.py::TestLogin::test_successful_login -v ``` ### 生成测试报告 测试完成后,会自动生成 Allure 测试报告。如果需要手动生成报告,可以运行: ```bash # 生成报告 allure generate reports/allure-results -o reports/allure-report --clean # 打开报告 allure serve reports/allure-results ``` ## 项目结构 ``` app_ui/ ├── config/ # 配置管理 │ ├── config.py # 配置类 ├── pages/ # 页面类 │ ├── base_page.py # 基础页面类 │ ├── login_page.py # 登录页面类 ├── tests/ # 测试用例 │ ├── base_test.py # 基础测试类 │ ├── test_login.py # 登录测试用例 ├── utils/ # 工具类 │ ├── time_utils.py # 时间工具 │ ├── device_utils.py # 设备工具 │ ├── file_utils.py # 文件工具 ├── reports/ # 测试报告 │ ├── screenshots/ # 截图目录 │ ├── allure-results/ # Allure 测试结果 │ ├── allure-report/ # Allure 测试报告 ├── requirements.txt # 项目依赖 ├── pytest.ini # pytest 配置 ├── run_test.py # 运行测试脚本 ├── .env.example # 环境变量示例 └── README.md # 项目说明 ``` ## 编写测试用例 ### 1. 创建页面类 在 `pages` 目录下创建页面类,继承自 `BasePage`: ```python from selenium.webdriver.common.by import By from pages.base_page import BasePage class HomePage(BasePage): """首页""" # 元素定位 SEARCH_BAR = (By.ID, "com.example.app:id/search_bar") MENU_BUTTON = (By.ID, "com.example.app:id/menu_button") def click_search_bar(self): """点击搜索栏""" self.click(*self.SEARCH_BAR) def click_menu(self): """点击菜单按钮""" self.click(*self.MENU_BUTTON) ``` ### 2. 创建测试用例 在 `tests` 目录下创建测试用例,继承自 `BaseTest`: ```python from tests.base_test import BaseTest from pages.home_page import HomePage class TestHome(BaseTest): """首页测试""" def setUp(self): super().setUp() self.home_page = HomePage(self.driver) def test_search_function(self): """测试搜索功能""" self.home_page.click_search_bar() # 验证搜索页面是否打开 # ... ``` ## 测试报告 测试完成后,Allure 测试报告会显示以下信息: - 测试结果统计 - 测试用例执行详情 - 测试步骤截图 - 测试日志 - 设备信息 ## 注意事项 1. **Appium Server**:在运行测试前,确保 Appium Server 已经启动 2. **设备连接**:确保测试设备已经连接到电脑(通过 USB 或模拟器) 3. **应用安装**:如果指定了 `APP_PATH`,Appium 会自动安装应用 4. **Allure 报告**:生成 Allure 报告需要安装 Allure 命令行工具 5. **元素定位**:根据实际应用的元素 ID 或 XPath 修改页面类中的元素定位 ## 扩展指南 - **添加新页面**:在 `pages` 目录下创建新的页面类 - **添加新测试**:在 `tests` 目录下创建新的测试用例 - **添加新工具**:在 `utils` 目录下创建新的工具类 - **自定义配置**:通过修改 `.env` 文件或创建 YAML 配置文件来自定义测试参数 ## 常见问题 ### Q: 测试执行失败,提示 "No such element" **A**: 检查元素定位是否正确,确保应用已经完全加载,可适当增加等待时间。 ### Q: Appium 连接失败 **A**: 确保 Appium Server 已经启动,检查 `APPIUM_HOST` 和 `APPIUM_PORT` 配置是否正确。 ### Q: 测试报告生成失败 **A**: 确保已经安装了 Allure 命令行工具,可从 [Allure 官网](https://github.com/allure-framework/allure2/releases) 下载并安装。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个框架! ## 许可证 MIT License