Capability 简介
- 功能:配置 Appium 会话,告诉 Appium 服务器需要自动化的平台的应用程序
- 形式:键值对的集合,键对应设置的名称,值对应设置的值
- 主要分为三部分
Session
- Appium 的客户端和服务端之间进行通信的前提
- 通过 Desired Capabilities建立会话
公共部分参数配置
| 键 | 描述 | 值 | 
| platformName | 使用的手机操作系统 | iOS,Android,或者 Firefox0S | 
| platformVersion | 手机操作系统的版本 | 例如 7.1,4.4 | 
| deviceName | 使用的手机或模拟器类型 | iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4, 等等…. 在 iOS 上,使用 Instruments的instruments -s devices命令可返回一个有效的设备的列表。在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数 | 
| automationName | 使用哪个自动化引擎 | android默认使用uiautomator2,ios默认使用XCUTest | 
| noReset | 在当前 session 下不会重置应用的状态。默认值为 false | true,false | 
| udid | 连接的真实设备的唯一设备编号 (Unique device identifier) | 例如 1 | 
 
Android 部分特有参数配置
| 键 | 描述 | 值 | 
| appActivity | Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加 .(例如 使用.MainActivity代替MainActivity) | MainActivity,.Settings | 
| appPackage | 运行的 Android 应用的包名 | com.example.android.myApp,com.android.settings | 
| appWaitActivity | 用于等待启动的 Android Activity 名称 | SplashActivity | 
| unicodeKeyboard | 启用 Unicode 输入,默认为 false | trueorfalse | 
| resetKeyboard |  | trueorfalse | 
| dontStopAppOnReset | 首次启动的时候,不停止 app | trueorfalse | 
| skipDeviceInitialization | 跳过安装,权限设置等操作 | trueorfalse | 
 
iOS 独有
| 键 | 描述 | 值 | 
| bundleId | 被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app关键字,但你必须提供udid。 | 例如 io.appium.TestApp | 
| autoAcceptAlerts | 当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false | true 或者 false | 
| showIOSLog | 是否在 appium 日志中显示从设备捕获的任何日志。默认 false |  | 
 
配置优化
{
  "noReset": "true", // 不清空缓存信息
  "dontStopAppOnReset": "true", // 首次启动的时候,不停止app
  "skipDeviceInitialization": "true", // 跳过安装,权限设置等操作
  "unicodeKeyBoard": "true" // 输入中文
}
Capability进阶
- newCommandTimeout
- appium 程序应等待来自客户端的新命令多长时间
- 超时后==会话删除==
- 默认 60秒
- 设置为 0 禁用
 
- udid 多台设备时用到,默认取第一条设备
- autoGrantPermissions android 特有不能与noreset共用
- noReset
- 默认为false
- 安卓true
- 不停止应用程序
- 不清除应用程序数据
- 不卸载 apk
 
 
- fullReset
- 默认为 false。true:新会话之前完全卸载被测应用程序
- 安卓
- 在会话开始之前(appium 启动 app)和测试之后停止应用程序
- 清除应用程序数据并卸载 apk
 
 
- PRINT_PAGE_SOURCE_ON_FIND_FAILURE
- 默认为 false
- 发生任何错误,强制服务器将实际的 XML 页面源转储到日志中.
 
- dontStopAppOnReset
- 默认为 false。
- 不希望应用程序在运行时重新启动,设置为 true