appium Capabilities的各个标签

Posted 天叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium Capabilities的各个标签相关的知识,希望对你有一定的参考价值。

今天来翻译一下Capabilities的各个标签,以后如果用得着可以随时翻阅。

 

General Capabilities

标签 概述
automationName 使用引擎 默认为Appium,其中Appium、UiAutomator2、Selendroid、Espresso用于android,XCUITest用于ios
platformName 操作系统 如iOS、Android、FirefoxOS
platformVersion 操作系统版本 如7.1,4.4
deviceName 设备名 如iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4,iOS需要,Android可以忽略
app apk、.ipa等的加载路径 如D:\\text.apk、/home/zhuyt/test.ipa
browserName 浏览器名,若为app则省略 如‘Safari‘、‘Chromium‘
newCommandTimeout appium server与client的超时时间 如60s
language 语言,默认只有用Siumulator才有效 如fr
locale 国家地区,默认只有用Siumulator才有效 如fr_CA, CA
udid 连接的物理设备的唯一设备标识符 如1ae203187fc012g
orientation (仅限Sim / Emu)以某个方向开始 LANDSCAPE or PORTRAIT
autoWebview 直接进入Webview上下文,默认False True,False
noReset 在会话前,不重启app,重启的话只删除数据 True,False
fullReset 完全重启app,删除app,数据后重启 True,False
eventTimings 启用或禁用各种Appium内部事件的时间报告,默认False True,False
enablePerformanceLogging (仅限Web和webview)使在Chrome(在Android上)或Safari(在iOS上)可以有log(默认为false) True,False
printPageSourceOnFindFailure  当某个操作失败时,打印当前页面代码,默认False True,False

 

Android Only

标签 概述
appActivity package中想要运行的Activity name,名字前通常需要加.,默认从package manifest读取  如.MainActivity,MainActivity
appPackage Android app中想要运行的Java的package包,默认从package manifest读取 如com.example.android.myApp
appWaitActivity 设置要等待的activity,默认与appActivity一样,若有appActivity、appPackage,则必须设置为第一个启动的activity名称 如MainActivity,MainActivity
appWaitPackage 要等待的App内的Java Package,默认与appPackage相等. 如com.example.android.myApp, com.android.settings
appWaitDuration 用于等待appWaitActivity启动的超时(以毫秒为单位)(默认为20000) 如30000
deviceReadyTimeout 等待设备准备就绪时的超时时间(默认为s) 如5
allowTestPackages 如果在manifest中有android:testOnly="true",则允许安装test Package,默认为False True,False
androidCoverage 用于执行测试的 instrumentation 类, adb shell am instrument -e coverage true -w 后接instumentation类,如com.my.Pkg.instrumentation.MyInstrumentation
androidCoverageEndIntent 设置实施的广播操作,覆盖范围为文件系统。即调用adb shell am broadcast -a  后接参数如com.example.pkg.END_EMMA
androidDeviceReadyTimeout 设备引导结束后,准备就绪的超时时间    如30
androidInstallTimeout 安装apk用的超时时间,默认90000毫秒 如90000
androidInstallPath apk安装前会先被push到的地址,默认是/data/local/tmp 如/sdcard/Downloads/
adbPort adb server的port,默认是5037 如5037
systemPort SystemPort用来连接appium-uiautomator2-server 或 appium-espresso-driver。对于前者,端口通常是8200-8299,后者为8300-8399,当两者都要用时,要注意产生冲突 如8201
remoteAdbHost 远程的ADB host 如192.168.0.101
androidDeviceSocket Devtools套接字名称。 仅在测试的应用程序是Chromium浏览器时才需要。 套接字由浏览器打开,Chromedriver作为devtools客户端连接浏览器。 如chrome_devtools_remote
avd   要启动的avd名 如api19
avdLaunchTimeout avd启动并连接到adb的超时时间,默认为60000毫秒 如30000
avdReadyTimeout avd完成启动的动画需要的超时时间,默认为120000毫秒  如30000
avdArgs 模拟器启动时额外的参数 如-netfast
useKeystore 使用自定义密钥库对apk签名,默认为false True,Fasle
keystorePath 自定义密钥库的地址,默认为~/.android/debug.keystore 如/path/to.keystore
keystorePassword 密钥库的密码 如foo
keyAlias 密钥的别名 如androiddebugkey
keyPassword 密钥的密码 如foo
chromedriverExecutable webdriver的绝对路径,如果chrome提供给了自己的wedriver,则应使用这,不用与appium绑定的chromedriver 如/abs/path/to/webdriver
chromedriverExecutableDir chromedriver的路径,会自动在该路径寻找chromedriver,如果chromedriverUseSystemExecutable 是true,则忽略 如/abs/path/to/chromedriver/directory
chromedriverChromeMappingFile 文件的绝对路径,将Chromedriver版本映射到它支持的最小Chrome。 如果chromedriverUseSystemExecutable为true,则忽略 如/abs/path/to/mapping.json
chromedriverUseSystemExecutable 如果为true,则绕过自动Chromedriver配置并使用随Appium下载的版本。 如果设置了chromedriverExecutable,则忽略。 默认为false True,False
autoWebviewTimeout 等待webView激活的超时时间,默认是2000毫秒 如2000
intentAction 用于启动 activity 的 intent action,默认值为android.intent.action.MAIN 如android.intent.action.MAIN
intentCategory


指定当前动作(Action)被执行的环境

如android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS
intentFlags 用于启动的activity的标志,默认0x10200000 如0x10200000
optionalIntentArguments 用于启动activity的intent action的参数 如--esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
dontStopAppOnReset 用于是否关闭activity所属的app后再启动activity,等同于adb shell am start 是否使用-S参数 True,False
unicodeKeyboard 使可以输入Unicode,默认为False True,False
resetKeyboard 在用Unicode测试完成后,将键盘reset,不可单独使用,默认为False True,False
noSign 使用调试键跳过检查和签名应用程序,仅适用于UiAutomator,而不适用于selendroid,默认为false True,False
ignoreUnimportantViews 是否调用uiautomator的函数setCompressedLayoutHierarchy(),此功能能加快测试速度,Accessibility命令将更快地运行而忽略某些元素 True,False
disableAndroidWatchers 是否禁用app的监听功能,这会减少cpu使用率。此功能仅适用于UiAutomator,而不适用于selendroid,默认为false True,False
chromeOptions 提供chromeDriver的capability参数 chromeOptions: {args: [‘--disable-popup-blocking‘]}
recreateChromeDriverSessions 移动至非web程序时,是否杀掉chromeDriver True,False
nativeWebScreenshot 在web程序中,用原生adb截图,而不是chromeDriver True,False
androidScreenshotPath 文件截图默认存放地址 如/sdcard/screenshots/
autoGrantPermissions 让appium自动授权app权限,如果noReset为True,则该条不生效 True,False
networkSpeed 指定网络最快上传与下载速度 如[‘full‘,‘gsm‘, ‘edge‘, ‘hscsd‘, ‘gprs‘, ‘umts‘, ‘hsdpa‘, ‘lte‘, ‘evdo‘]
gpsEnabled 是否启动gps True,False
isHeadless 将此功能设置为true可在无需显示设备时运行仿真器。 false是默认值isHeadless也支持iOS,检查特定于XCUITest的功能 True,False
otherApps 运行测试前需要安装的app列表 如"/path/to/app.apk", https://www.example.com/url/to/app.apk, ["/path/to/app-a.apk", "/path/to/app-b.apk"]
adbExecTimeout adb指令超时时间,默认是20000毫秒 如50000
localeScript 建立一个script 例如"Cyrl" (Cyrillic)

 

UIAutomator2 Only

标签 概述
uiautomator2ServerLaunchTimeout 等待uiAutomator2的server启动超时时间,单位毫秒 如3000
uiautomator2ServerInstallTimeout 等待uiAutomator2的server被安装超时时间,单位毫秒 如3000

 

 

 

 

 

Espresso Only

标签 概述
espressoServerLaunchTimeout 等待espresso的server的启动超时时间,单位毫秒 如3000

 

 

 

 

iOS Only

标签 概述
calendarFormat (仅限Sim)要为iOS模拟器设置的日历格式 如gregorian
bundleId 被测试应用程序的bundle Id。用于在真实设备中启动测试,。在使用 bundle ID 在真实设备上执行测试时,你可以省略‘app‘关键字,但你必须提供 `udid` , 如io.appium.TestApp
udid 设备唯一物理地址号 如1ae203187fc012g
launchTimeout 启动超时时间,单位毫秒 如3000 
locationServicesEnabled (仅限Sim)强制关闭定位与否。 True,False
locationServicesAuthorized (仅限Sim)通过修改 plist 文件设定是否允许应用使用定位服务,从而避免定位服务的警告出现。请注意在使用这个关键字时,必须需要使用 `bundleId` 关键字来发送应用的 bundle ID。 True,False
autoAcceptAlerts 接收任何警告处理,包括隐私访问许可警报。默认为False。不适用于基于XCUITest的测试。 True,False
autoDismissAlerts 不接受任何警告处理,包括隐私访问许可警报。默认为False。不适用于基于XCUITest的测试。 True,False
nativeInstrumentsLib 使用原生 intruments 库 (即关闭 instruments-without-delay )  True,False
nativeWebTap (仅限Sim)在Safari中启用“真实的”非基于javascript的网络点击。 默认值:false。 警告:根据视口大小/比例,这可能无法准确地点击元素 True,False
safariInitialUrl (仅限Sim)(>= 8.1) 初始的safari的URL,默认是当前的欢迎页 如https://www.github.com
safariAllowPopups (仅限Sim)允许用JS在Safari中打开新窗口。 True,False
safariIgnoreFraudWarning (仅限Sim)防止Safari显示欺诈性网站警告。 True,False
safariOpenLinksInBackground (仅限Sim)Safari是否应允许在新窗口中打开链接。  True,False
keepKeyChains (仅限Sim)是否在启动/完成appium会话时保留KeyChains,即保存密码等。 True,False
localizableStringsDir (仅限Sim)是否寻找本地化的字符串。默认en.lproj True,False
processArguments 通过 instruments 传递到 AUT 的参数 如-myflag
interKeyDelay 输入值时发送到元素的延迟时间 如100
showIOSLog 是否在appium日志中显示从设备捕获的任何日志。 默认为false True,False
sendKeyStrategy 输入文本到文本框的策略。模拟器默认:一个一个输。真实设备:分组输 oneByOne, grouped or setValue 
screenshotWaitTimeout 等待生成屏幕截图的最大超时秒数。 默认值:10,单位为秒 如10
waitForAppScript 用于判断 "应用是否被启动” 的 iOS 自动化脚本代码。默认情况下系统等待直到页面内容非空。结果必须是布尔类型。 如true;, target.elements().length > 0;, $.delay(5000); 
webviewConnectRetries 将连接消息发送到远程调试器以获取webview的次数。 默认值:8 如8
appName 被测试的app的显示名字。IOS系统版本需要为9.0+ 如UICatalog
customSSLCert (仅限Sim)将SSL证书添加到iOS的模拟器中

-----BEGIN CERTIFICATE-----MIIFWjCCBEKg...
-----END CERTIFICATE-----

webkitResponseTimeout (只限制真实设备)等待safari中页面的响应时间,默认为毫秒 如3000
remoteDebugProxy  (仅限Sim, <= 11.2)如果设置,Appium通过本地端口(仅限Sim,<= 11.2)上的代理或此unix套接字上的代理(仅Sim> = 11.3)发送和接收远程调试消息,而不是直接与iOS远程调试器通信。 例如 12000 如12000 or "/tmp/my.proxy.socket"

以上是关于appium Capabilities的各个标签的主要内容,如果未能解决你的问题,请参考以下文章

appium capabilities

Appium Desired Capabilities-General Capabilities

Appium Desired Capabilities

Appium Python 三:Desired capabilities

Appium Desired Capabilities-iOS Only

Appium Desired Capabilities信息配置