# appium_framework **Repository Path**: wudongmeng/appium_framework ## Basic Information - **Project Name**: appium_framework - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-18 - **Last Updated**: 2025-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Appium自动化测试框架 基于现代Appium Python客户端的自动化测试框架,采用Page Object Model设计模式。 ## 🚀 特性 - **现代Appium配置**:使用AppiumOptions进行配置 - **Page Object Model**:清晰的页面结构和代码复用 - **完整日志系统**:详细的操作日志记录 - **多入口支持**:测试入口、演示入口、现代示例 - **错误处理**:完善的异常处理和重试机制 ## 📁 目录结构 ``` appium_framework/ ├── config/ # 配置文件 │ ├── capabilities.py # Appium配置选项 │ └── settings.py # 全局设置 ├── pages/ # 页面对象 │ ├── base_page.py # 基础页面类 │ └── login_page.py # 登录页面类 ├── tests/ # 测试用例 │ └── test_login.py # 登录测试用例 ├── utils/ # 工具类 │ ├── driver.py # 驱动管理 │ └── logger.py # 日志工具 ├── logs/ # 日志文件 ├── running.py # 主入口文件 ├── demo.py # 演示脚本 ├── modern_example.py # 现代Appium示例 ├── pytest.ini # pytest配置 ├── requirements.txt # 依赖库 └── README.md # 说明文档 ``` ## 🛠️ 安装依赖 ```bash pip install -r requirements.txt ``` ## 📱 使用方法 ### 1. 启动App并打开页面 ```bash # 基本使用 python running.py # 打开登录页面 python running.py --page login # 启用调试模式 python running.py --debug ``` ### 2. 运行演示 ```bash python demo.py ``` ### 3. 现代Appium示例 ```bash python modern_example.py ``` ### 4. 运行测试 ```bash pytest ``` ## ⚙️ 配置说明 ### 设备配置 在 `config/capabilities.py` 中配置: ```python # 现代配置方式 from appium.options.common.base import AppiumOptions def get_appium_options(): options = AppiumOptions() options.load_capabilities({ "platformName": "Android", "appium:automationName": "UiAutomator2", "appium:appPackage": "com.miui.home", "appium:appActivity": "com.miui.home.launcher.Launcher", "appium:noReset": True, "appium:deviceName": "24129RT7CC" }) return options ``` ### 服务器配置 在 `config/settings.py` 中配置: ```python APPIUM_SERVER = "http://127.0.0.1:4723/wd/hub" IMPLICIT_WAIT = 10 LOG_DIR = "/path/to/logs" ``` ## 🔧 扩展指南 ### 添加新页面 1. 在 `pages/` 目录下创建新的页面类 2. 继承 `BasePage` 类 3. 定义页面元素和操作方法 ### 添加新测试 1. 在 `tests/` 目录下创建新的测试文件 2. 使用pytest框架编写测试用例 3. 利用页面对象进行测试 ## 📋 注意事项 1. **Appium服务器**:确保Appium服务器正在运行 2. **设备连接**:确保设备已正确连接并启用USB调试 3. **应用权限**:确保目标应用具有必要的权限 4. **日志查看**:检查 `logs/` 目录下的日志文件进行调试 ## 🔍 故障排除 ### 连接问题解决方案 #### 1. 使用连接检查工具 ```bash python check_connection.py ``` #### 2. 手动检查步骤 **检查Appium服务器状态:** ```bash curl http://127.0.0.1:4723/status ``` **检查设备连接:** ```bash adb devices ``` **启动Appium服务器:** ```bash appium --address 127.0.0.1 --port 4723 ``` ### 常见问题 #### 连接失败 - **错误信息**:`The requested resource could not be found` - **解决方案**: 1. 确保Appium服务器已启动 2. 检查服务器地址配置(已修复为 `http://127.0.0.1:4723`) 3. 验证网络连接 #### 设备未找到 - **错误信息**:`device not found` - **解决方案**: 1. 启用USB调试 2. 授权USB调试权限 3. 重新连接USB线缆 #### Appium未安装 - **解决方案**: ```bash npm install -g appium ``` ### 调试技巧 1. **使用连接检查工具**: ```bash python check_connection.py ``` 2. **启用详细日志**: ```bash python running.py --debug ``` 3. **查看日志文件**: - 检查 `logs/` 目录下的日志文件 - 使用Appium Inspector进行元素检查 4. **验证配置**: - 确保 `config/settings.py` 中的地址正确 - 检查设备配置是否匹配实际设备 ## 🎯 最佳实践 1. **页面对象模式**:每个页面创建独立的类 2. **元素定位**:使用稳定的定位策略(ID、XPath等) 3. **等待策略**:合理使用显式等待和隐式等待 4. **错误处理**:添加适当的异常处理和重试机制 5. **日志记录**:记录关键操作和错误信息