# UIAutomation **Repository Path**: zypdominate/uiautomation ## Basic Information - **Project Name**: UIAutomation - **Description**: 这是一个基于 Appium 和 Pytest 的 Android 自动化测试框架,使用 BFS 算法进行 UI 页面跳转,并通过 YAML 文件管理页面元素,旨在简化 Android 应用的自动化测试过程。 - **Primary Language**: Unknown - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2024-12-21 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, pytest ## README # Android 自动化测试框架 这是一个基于 Appium 和 Pytest 的 Android 自动化测试框架,使用 BFS 算法进行 UI 页面跳转,并通过 YAML 文件管理页面元素,旨在简化 Android 应用的自动化测试过程。 ## 项目结构 ``` ├── base/ # 基础类和设备管理 │ ├── devicemanager.py # 设备管理类 │ └── elementoperator.py # 元素操作类 ├── config/ # 配置文件 │ └── device_config.yaml # 设备和 Appium 配置 ├── data/ # 数据文件 │ └── huchuan.yaml # 页面元素配置 ├── pages/ # 页面对象模型 │ └── Huchuan.py # 演示 App 应用页面对象 ├── testcases/ # 测试用例 │ └── test_huchuan.py # 互传应用测试用例 ├── utils/ # 工具类 │ ├── adboperator.py # ADB 操作类 │ ├── constant.py # 常量定义 │ ├── logoperator.py # 日志操作类 │ └── timeoperator.py # 时间操作类 ├── conftest.py # Pytest 配置和 fixture ├── requirements.txt # Python 依赖包 └── README.md # 项目说明文档 ``` ## 环境要求 - Python 3.7+ - Appium Server - Android SDK - Android 模拟器或真机设备 ## 安装步骤 1. 克隆项目到本地: ```bash git clone cd ``` 2. 安装依赖包: ```bash pip install -r requirements.txt ``` 3. 启动 Appium 服务器: ```bash appium ``` 4. 确保 Android 设备已连接并被识别: ```bash adb devices ``` ## 配置说明 在 `config/device_config.yaml` 文件中配置设备和 Appium 的相关信息 ## 使用说明 ### 运行测试 1. 使用 Pytest 运行测试用例: ```bash pytest testcases/ ``` 2. 生成 HTML 测试报告: ```bash pytest --html=report.html ``` ### 主要功能 - **设备管理**:通过 `DeviceManager` 类管理设备连接和应用启动。 - **元素操作**:通过 `ElementOperator` 类封装常用的元素操作。 - **ADB 操作**:通过 `AdbOperator` 类执行 ADB 命令。 - **页面对象模型**:使用 POM 设计模式组织页面对象,便于维护和扩展。 - **自动化测试**:使用 Pytest 编写和运行测试用例,支持生成 HTML 测试报告。 - **UI 页面跳转**:使用 BFS(广度优先搜索)算法实现页面跳转,确保高效的页面遍历和操作。 - **元素管理**:通过 YAML 文件管理页面元素,简化元素定位和维护。 ## 常见问题 - **Appium 服务器未启动**:确保 Appium 服务器正在运行,并且设备已连接。 - **设备未识别**:使用 `adb devices` 检查设备连接状态。 - **应用未启动**:检查 `device_config.yaml` 中的 `appPackage` 和 `appActivity` 是否正确。