
一、Capability 到底是什么?(最通俗解释)
1. 定义
Desired Capability = 愿望清单 / 配置参数
2. 核心功能
告诉 Appium 要连Android 还是 iOS
告诉 Appium 要启动哪个 APP(包名)
告诉 Appium设备编号、版本、引擎
告诉 Appium是否重置 APP、是否允许中文、是否跳过权限
建立会话(Session)的必备入口
3. 格式
desired_caps = {"key": "value","key": "value"}
二、Capability 三大组成部分
1. 公共参数(Android + iOS 通用)
2. iOS 专用参数
3. Android 专用参数
三、公共参数(必须掌握)
重点说明:
Android 上 deviceName 可以随便填,但必须写!
automationName 不写会自动默认,但建议写:Android=uiautomator2
noReset = true 非常重要,避免每次重启 APP
四、iOS 专用参数
五、Android 专用参数(高频、重点、实战必备)
1. 启动 APP 必备 4 个参数
2. 提高稳定性参数
六、最标准、最完整的 Android 配置示例
1. 基础启动配置
desired_caps = {"platformName": "Android","deviceName": "emulator-5554","appPackage": "io.appium.android.apis","appActivity": ".ApiDemos"}
2. 企业级稳定配置(必加!)
desired_caps = {"platformName": "Android","deviceName": "emulator","appPackage": "io.appium.android.apis","appActivity": ".ApiDemos","automationName": "uiautomator2","noReset": "true", # 不清缓存"dontStopAppOnReset": "true", # 不停止APP"skipDeviceInitialization": "true", # 跳过安装、权限"unicodeKeyboard": "true", # 中文输入"resetKeyboard": "true" # 重置键盘}
七、每个参数的详细作用(超级完整版)
1. noReset = true
不清除用户数据
不重新登录
不重置权限自动化必开!
2. dontStopAppOnReset = true
启动时不杀掉 APP 进程
直接复用当前 APP 状态大幅提高用例执行速度
3. skipDeviceInitialization = true
跳过设备安装
跳过权限设置
跳过服务器安装速度提升非常明显
4. unicodeKeyboard = true
允许输入中文、特殊字符
5. resetKeyboard = true
运行完成后恢复正常输入法
八、Capability 核心总结(最重要)
1. Capability 是 Appium 启动会话的配置文件
2. 格式是 键值对
3. 分为三类:
公共参数
iOS 专用
Android 专用
4. Android 必备 4 个参数
platformName
deviceName
appPackage
appActivity
5. 提高稳定性必加 5 个参数
noReset
dontStopAppOnReset
skipDeviceInitialization
unicodeKeyboard
resetKeyboard
6. 自动化引擎必须是
automationName: uiautomator2
九、最终一句话总结
Desired Capability 就是告诉 Appium 要连什么设备、启动什么 APP、用什么方式运行,是所有 Appium 脚本的灵魂和入口。
夜雨聆风