一、capability 含义
-
capability功能
- 配置appium会话,告诉appium服务器需要自动化的平台的应用程序
-
capability的形式
- 键值对的集合,键对应设置的名称,值对应设置的值
-
主要分为三部分
- 公共部分
- ios部分
- Android部分
-
session
- appium的客户端和服务端之间的通信的前提
- 通过desired capability建立会话
二、capability 参数介绍
2.1、公共部分参数配置
键 | 描述 | 值 |
---|---|---|
platformNaame | 使用的手机操作系统 | iOS,Android,或者FirefoxOS |
platformVersion | 手机的操作系统版本 | 例如7.14.4.1 |
deviceName | 设备名称 |
iPhone Simulator , iPad Simulator , iPhone Retina 4-inch , Android Emulator , Galaxy S4 , 等等…. 在 iOS 上,使用 Instruments的 instruments -s devices 命令可返回一个有效的设备的列表。在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数 |
automationName | 使用哪个自动化引擎 | Android默认automator2,ISO默认XCUTest |
noReset | 在当前session下不会重置应用的状态,默认值为false | true、false |
uuid | 连接设备的唯一设备编号(unique device identifier) | 例如4646546 |
2.2、Android部分参数配置
键 | 描述 | 值 |
---|---|---|
appActivity | activity的名字是指从安装包中所要启动的Android activity。通常需要在前面添加,(例如使用.MainActivity代替MainActivity) | MainActivity,.Settings |
appPackage | 运行Android的应用的包名 | com.android.settings |
appWaitActivity | 用于等待启动的Andriod Activity名称 | SplashActivity |
unicodeKeyboard | 启用unicode输入,默认false | true、false |
resetKeyboard | true、false | |
dontStopAppOnReset | 首次启动时不停止app | true、false |
skipDeviceInitialization | 跳过安装、权限设置等操作 | true、false |
2.3、iOS 独有
键 | 描述 | 值 |
---|---|---|
bundleId |
被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。 |
例如 io.appium.TestApp
|
autoAcceptAlerts |
当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false | true 或者 false |
showIOSLog |
是否在 appium 日志中显示从设备捕获的任何日志。默认 false | true or false |
2.4、Desire capability 参数示例
- API Demo 启动页配置
{
"platformName": "android",
"deviceName": "emulator-5554",
"appPackage": "io.appium.android.apis",
"appActivity": ".ApiDemos"
}
2.5、配置优化
- 添加参数,提高用例的稳定性
{
"noReset": "true", // 不清空缓存信息
"dontStopAppOnReset": "true", // 首次启动的时候,不停止app
"skipDeviceInitialization": "true", // 跳过安装,权限设置等操作
"unicodeKeyBoard": "true" // 输入中文
}