Python+Pytest+Appium自动化测试实战
以下是关于 iOS 应用模拟器(Simulator)的完整指南,涵盖环境配置、使用技巧和与 Appium 的集成:
一、环境准备(iOS 模拟器)
1. 硬性要求
- 必须使用 macOS 系统(iOS 模拟器仅支持 macOS)
- 安装 Xcode(通过 App Store 或 官网下载)
2. 启动模拟器
- 方法 1:通过 Xcode 界面
- 方法 2:通过命令行指定设备
3. 常用命令
| 列出所有可用设备 |
| 启动指定设备 |
| 安装应用到模拟器 |
| 卸载应用 |
二、使用 iOS 模拟器的技巧
1. 快速操作
- 快捷键: Cmd + Shift + H:返回主屏幕Cmd + L:锁定屏幕Cmd + S:截图
- 模拟特殊操作: 摇动设备:Ctrl + Cmd + Z旋转屏幕:Cmd + 左/右方向键
2. 重置模拟器
xcrun simctl erase <UDID> # 清除所有数据(保持系统干净)
3. 查看模拟器日志
tail -f ~/Library/Logs/CoreSimulator/<UDID>/system.log
三、与 Appium 集成
1. Capabilities 配置示例
caps = { "platformName": "iOS", "platformVersion": "17.4", # 与模拟器版本一致 "deviceName": "iPhone 15 Pro", # 与模拟器型号一致 "automationName": "XCUITest", "app": "/path/to/YourApp.app", # 编译后的 .app 文件路径 "wdaStartupRetries": 4, # 增强稳定性 "showXcodeLog": True }
2. 编译应用
- 生成测试用的
.app
文件: - 输出路径:
~/Library/Developer/Xcode/DerivedData/<ProjectName>/Build/Products/Debug-iphonesimulator/
3. 启动测试
from appium import webdriver driver = webdriver.Remote('http://localhost:4723/wd/hub', caps)
四、常见问题解决
1. WebDriverAgent 编译失败
- 现象:
Failed to launch WDA
- 解决方案: 在 Xcode 中打开:/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent修改 Signing & Capabilities 选择个人开发团队在模拟器手动运行一次 WebDriverAgentRunner
2. 元素定位工具
- Appium Inspector:需配置
"appium:settings[snapshotMaxDepth]": 100
- Xcode 自带的 Accessibility Inspector:
3. 权限弹窗处理
# 在 capabilities 中添加自动处理权限 "autoAcceptAlerts": True, # 处理系统弹窗 "autoGrantPermissions": True # 自动授权
五、高级技巧
1. 并行测试
# 启动多个模拟器实例 xcrun simctl clone <源设备UDID> "iPhone15-Pro-Test1"
2. 模拟生物识别
# 模拟 Face ID 通过 driver.execute_script('mobile: enrollBiometric', {'isEnabled': True}) driver.execute_script('mobile: sendBiometricMatch', {'type': 'face', 'match': True})
3. 网络模拟
# 模拟弱网环境 driver.set_network_conditions({ "offline": False, "latency": 500, # 延迟 500ms "download_throughput": 50000, # 50kb/s "upload_throughput": 20000 })
六、完整示例流程
- 启动模拟器
- 安装应用
- 运行 Appium 测试
通过以上步骤,您可以在 macOS 环境下高效使用 iOS 模拟器进行自动化测试。注意保持 Xcode 和 Appium 的版本兼容性,遇到问题时优先检查证书签名和 WebDriverAgent 配置。
进阶高级测试工程师 文章被收录于专栏
《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart