一、Capability 简介
功能:配置 Appium 会话,告诉 Appium 服务器需要自动化的平台的应用程序
 形式:键值对的集合,键对应设置的名称,值对应设置的值
 主要分为三部分
公共部分
ios 部分
android 部分
二、Session
Appium 的客户端和服务端之间进行通信的前提
 通过 Desired Capabilities 建立会话

三、参数配置
1、公共参数配置
| 项目 | Value | 
|---|---|
| platformName | 使用的手机操作系统;iOS,Android,或者Firefox0S | 
| platformVersion | 手机操作系统的版本;例如7.1,4.4 | 
| deviceName | 使用的手机模拟类型; iPhone、Simulator、iPad、iPhone等等…在iOS上,使用Instruments的instruments -s devices命令可返回一个有效的设备的列表。在Andorid上虽然这个参数目前已被忽略,但仍然需要添加上该参数 | 
| automationName | 使用哪个自动化引擎;android默认使用uiautomator2,ios默认使用XCUTest | 
| noReset | 在当前session下不会重置应用的状态。默认值为false ; true,false | 
| udid | 连接的真实设备的唯一设备编号(Unique device identifier) ;例如1ae203187fc012g | 
2、部分参数配置
| 项目 | Value | 
|---|---|
| appActivity | Activity 的名字是指从你的包中所要启动的Android acticity。他通常需要再前面添加 .(例如使用.MainActivity代替MainActivity) | 
| appPackage | 运行的Android应用的包名(com.example.android.myA) | 
| appWaitActivity | 用于等待启动的Android Activity名称 | 
| unicodeKeyBoard | 启用Unicode 输入,默认为false | 
| resetKeyboard | true or false | 
| dontStopAppOnReset | 首次启动的时候不停止app, true or false | 
| skipDeviceInitialization | 跳过安装,权限设置等操作 true or false | 
3、Desire capability 参数示例
企业微信启动页配置
{"platformName": "Android","platformVerison": "6","deviceName": "127.0.0.1:7555","appPackage": "com.tencent.wework","appActivity": ".launch.LaunchSplashActivity","noReset": "true"
}
4、配置优化
添加参数,提高用例的稳定性
{"noReset": "true", // 不清空缓存信息"dontStopAppOnReset": "true", // 首次启动的时候,不停止app"skipDeviceInitialization": "true", // 跳过安装,权限设置等操作"unicodeKeyBoard": "true" // 输入中文
}