【L1.第五章】 Appium Capablility 配置参数详细解析

Appium Capablility 配置参数详细解析

Capability 功能是用于启动 Appium 会话的一组参数的名称。这部分信息描述了 session 所希望具备的“功能”。
功能表示为键值对的集合,值可以是任何有效的 JSON 类型,包含其他对象。
Appium 的客户端和服务端之间进行通信都必须在一个 Session 的上下文中进行。

客户端在发起通信的时候首先会发送一个叫作 “Desired Capabilities” 的 JSON 对象给服务器。服务器收到该数据后,会创建一个 session 并将 session 的 ID 返回到客户端,之后客户端可以用该 session 的 ID 发送后续的命令。

1、W3C 标准 Capability解析

W3C WebDriver 关于平台的标准 capability 的其中一小部分如下表所示:

Capability Name类型描述
browerNamestring要启动和自动化的浏览器的名称
browerVersionstring具体浏览器版本
platformNamestring平台名称

2、常用的公共 Capability解析

Appium 在 W3C 规定的 capabilities 标准的基础上引入了其他更适配不同平台的附加功能。并且,任何非标准的 扩展 capability 都必须包含 appium: 前缀。

Appium 支持的平台,有如下几种:

  1. Browsers
  2. iOS apps
  3. Android apps
  4. React apps
  5. Unity

其中在不区分驱动程序时,常用的 Capability 有如下几种:

是否必填描述
platformNameiOS,Android,或者 Firefox0S平台类型
appium:automationNameuiautomator2、xcuitestAppium 驱动程序的名称
browserNameiChrome、firefox如果支持 Web 浏览器作为特殊情况,则浏览器的名称
appium:deviceNameiPhone14、15、16要自动化的特定设备的名称,例如 iPhone 14 (目前仅对指定 iOS 模拟器有用,因为在其他情况下,通常建议通过 appium:udid 使用特定设备 ID 能力)。
appium:platformVersion例如 7.1, 4.4平台的版本
appium:newCommandTimeout120Appium 服务器在确定客户端已离开并且会话应关闭之前应等待客户端发送命令的秒数
appium:noResettrue设置为 true 时,在当前 session 下不会重置应用的状态(默认为 false)
appium:fullResettrue设置为 true,则指示 Appium 驱动程序通过附加步骤来增强其通常的重置逻辑,以确保最大的环境再现性(默认 false )
appium:printPageSourceOnFindFailuretrue如果为 true,则每当查找元素的请求失败时,都会收集页面源并将其打印到 Appium 日志(默认 false )
appium:eventTimingstrue如果为 true,则指示 Appium 驱动程序收集事件计时(默认 false )
appium:shouldTerminateApptrue指定应用程序是否应在会话结束时终止。默认值为 true,除非 noReset 功能设置为 true。
appium:forceAppLaunchtrue指定如果应用程序已经在会话启动时运行,是否应该强制重新启动。默认值为 true ,除非 noReset 设置为 true

3、Android 部分特有参数配置解析

描述
appium:appActivityMainActivity, .SettingsActivity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity)
appium:appPackagecom.example.android.myApp, com.android.settings运行的 Android 应用的包名
appium:appWaitActivitySplashActivity用于等待启动的 Android Activity 名称
appium:appWaitActivitySplashActivity用于等待启动的 Android Activity 名称
appium:unicodeKeyboardTrue or False启用 Unicode 输入,默认为 false
appium:resetKeyboardTrue or False
appium:dontStopAppOnResetTrue or False首次启动的时候,不停止 app
appium:skipDeviceInitializationTrue or False跳过安装,权限设置等操作

4、IOS 独有参数配置解析

描述
appium:bundleId例如 io.appium.TestApp被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。
appium:autoAcceptAlertsTrue or False当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 false
appium:showIOSLogTrue or False是否在 appium 日志中显示从设备捕获的任何日志。默认 false

5、Desire Capability 初始化参数

{
  "platformName": "android",
  "deviceName": "TEST-XXX",
  "appium:appPackage": "io.appium.android.XXX",
  "appium:appActivity": ".ApiDemos"
}

6、Desire Capability 推荐添加参数

添加参数,提高用例的稳定性

{
  "appium:noReset": True, #不清空缓存信息
  "appium:dontStopAppOnReset": True, #首次启动的时候,不停止app
  "appium:skipDeviceInitialization": True,#跳过安装,权限设置等操作
  "appium:unicodeKeyBoard": True #输入中文
}

7、Desire Capablility 完美优化参数

{
  "platformName": "android",
  "deviceName": "TEST-XXX",
  "appium:appPackage": "io.appium.android.XXX",
  "appium:appActivity": ".ApiDemos",
  "appium:noReset": True, #不清空缓存信息
  "appium:dontStopAppOnReset": True, #首次启动的时候,不停止app
  "appium:skipDeviceInitialization": True,#跳过安装,权限设置等操作
  "appium:unicodeKeyBoard": True #输入中文
}

以上是一些常见的 Appium Capablility 配置参数,具体使用哪些参数取决于具体的测试需求和应用类型。配置参数的正确设置对于成功执行自动化测试非常重要,因此需要仔细分析测试需求,配置相应的参数。

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一禅(OneZen)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值