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 |
true or false
|
resetKeyboard |
|
true or false
|
dontStopAppOnReset |
首次启动的时候,不停止 app |
true or false
|
skipDeviceInitialization |
跳过安装,权限设置等操作 |
true or false
|
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