VOL 163
28
2020-09
今天距2021年94天
这是ITester软件测试小栈第163次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起进群打怪。
本文8918字,阅读约需20分钟
在上一篇APP自动化系列文章:APP自动化测试系列之Appium介绍及运行原理,主要介绍appium的运行原理。
以下主要介绍Appium中Desired Capabilities的作用、常用配置及实战。
一
Desired Capabilities介绍
1
Desired Capabilities概念
Desired Capabilities是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。
2
Desired Capabilities作用
负责启动服务端时的参数设置,启动session的时候是必须提供的。
比如:
是启动浏览器还是启动移动设备?
是启动 Andorid 还是启动 iOS ?
启动 Android 时,App 的 package 是什么?
启动 Android 时,App 的 Activity 是什么?
二
常用Desired Capabilities
Desired Capabilities官网传送门:
http://appium.io/docs/en/writing-running-appium/caps/
通用的 Capabilities:
键 |
描述 | 值 |
automationName | 使用哪个自动化引擎 | Android引擎:Appium(默认)、Selendroid、UiAutomator2或者Espresso。 |
iOS引擎:XCUITest。 | ||
platformName | 使用哪个移动操作系统平台 | iOS,Android或FirefoxOS |
platformVersion | 移动操作系统版本 | 例如:7.1,4.4 |
deviceName | 使用的移动设备或模拟器的种类 | iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4等等。 在iOS上,使用instruments -s devices命令获取。 在Android上,这个功能目前被忽略,尽管它仍然是必需的。 |
app | .apk、.ipa或包含apk或ipa的.zip文件的本地绝对路径或远程http URL。Appium将尝试在适当的设备上安装这个应用程序的二进制文件。 注意:如果Android指定了appPackage 和 appActivity参数,则该参数不是必须的。和browserName不兼容。 |
/abs/path/to/my.apk 或http://myapp.com/app.ipa |
browserName | 如果测试的是移动浏览器则使用。如果是App则为空。 | 适用于iOS的“Safari”,适用于Android的“Chrome”,“Chromium”或“Browser” |
newCommandTimeout | 在下一个命令执行之前的等待最大时长。单位为秒。 | 例如 60 |
language | (Sim / Emu-only)为模拟器/仿真器设置的语言。在Android端,只适用于API22及之前的版本。 | 例如 fr |
locale | (Sim / Emu-only)为模拟器/仿真器设置的语言环境 | 例如 fr_CA |
udid | 连接的物理设备的唯一设备标识符 | 例如 1ae203187fc012g |
orientation | (Sim / Emu-only)从某个特定方向开始 | LANDSCAPE、PORTRAIT |
autoWebview | 直接进入Webview上下文。默认false | true、false |
noReset | 在开始会话之前不要重置应用程序状态。 | true、false |
fullReset | 执行完整的重置操作。 | true、false |
eventTimings | Appium 提供了一个能力,可以获取关于启动信息和命令执行时间的计时信息。这是由 eventTimings 这个初始化参数控制的高级功能(把这个参数设置为 true 来记录事件的计时信息)。打开这个参数,GET /session/:id 这个接口的响应结果(也就是,driver.getSessionDetails() 的响应结果,或者类似的,取决于客户端实现)中会包含 events 属性。 | 例如:true |
enablePerformanceLogging | (仅限Web和webview)启用Chromedriver(Android)或Safari(iOS)性能记录(默认false) | true、false |
printPageSourceOnFindFailure | 当一个操作失败时,打印当前页面的源代码信息。默认False。 | true、false |
Android独有的 Capabilities:
键 |