Appium详解server capabilities
通用能力
| Capability | Description | Values |
|---|---|---|
automationName |
使用哪种自动化引擎 | Appium(默认)或Selendroid或UiAutomator2用于Android或XCUITestiOS |
platformName |
使用哪个移动OS平台 | iOS,Android或FirefoxOS |
platformVersion |
移动OS版本 | 例如12.0,4.4 |
deviceName |
要使用的移动设备或模拟器的种类 | iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4,等....在iOS上,可以通过instruments -s devices获得。在Android上,此功能可以忽略 |
app |
包的本地路径或者远程url | /abs/path/to/my.apk http://myapp.com/app.ipa |
browserName |
移动Web浏览器的名称。如果仅测试app,可忽略 | iOS:Safari<br>Android:Browser ,Chromium:chrome |
newCommandTimeout |
会话等待间隔时间(以秒为单位) | 例如 60 |
language |
为iOS和Android设置的语言。它仅适用于iOS上的模拟器 | 例如 fr |
locale |
为iOS和Android设置的区域设置。它仅适用于iOS上的模拟器。fr_CA是iOS格式。CA是Android格式(国家/地区名称缩写) |
例如fr_CA,CA |
udid |
iOS连接的物理设备的唯一设备标识符 | 例如 1ae203187fc012g |
autoWebview |
直接进入Webview上下文。默认false |
true, false |
noReset |
测试开始之前不重装APP。有关详细信息,请参见此处 | true, false |
fullReset |
测试开始之前完全重置。有关详细信息,请参见此处 | true, false |
eventTimings |
启用或禁用各种Appium内部事件的时间报告(例如,每个命令的开始和结束等)。默认为false。要启用,请使用true。然后,events在响应查询当前会话时,将时间报告为属性。请参阅事件计时文档以了解此响应的结构。 |
例如, true |
enablePerformanceLogging |
(仅限Web和webview)启用Chromedriver(在Android上)或Safari(在iOS上)性能记录(默认false) |
true, false |
printPageSourceOnFindFailure |
当查找操作失败时,打印当前页面源。默认为false。 |
例如, true |
Android特有
| Capability | Description | Values |
|---|---|---|
appActivity |
app启动的activity | MainActivity, .Settings |
appPackage |
app的包名 | com.example.android.myApp, com.android.settings |
appWaitActivity |
要等待的activity,必须设置为第一个启动的activity | SplashActivity,SplashActivity,OtherActivity,*,*.SplashActivity |
appWaitPackage |
等待的Android应用程序的包名。 | com.example.android.myApp, com.android.settings |
appWaitDuration |
用于等待appWaitActivity启动的超时(以毫秒为单位默认2000 |
30000 |
deviceReadyTimeout |
等待设备准备就绪时超时(以秒为单位) | 5 |
allowTestPackages |
允许安装android:testOnly="true"的测试包。false默认情况下 |
true 或者 false |
androidCoverage |
Fully qualified instrumentation class. adb shell am instrument -e coverage true -w |
com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation |
androidCoverageEndIntent |
发送广播事件db shell am broadcast -a |
com.example.pkg.END_EMMA |
androidDeviceReadyTimeout |
用于等待设备在引导后准备就绪的超时秒数 | 例如, 30 |
androidInstallTimeout |
用于等待apk安装到设备的超时时间(以毫秒为单位)。默认为90000 |
例如, 90000 |
androidInstallPath |
app安装到设备上的位置。默认为/data/local/tmp |
例如 /sdcard/Downloads/ |
adbPort |
用于连接ADB服务器的端口(默认5037) |
5037 |
systemPort |
systemPort用于连接appium-uiautomator2-server或appium-espresso-driver。默认值是8200,一般选择8200到8299之前的一个端口用于appium-uiautomator2-server,8300到8399选择端口用于appium-espresso-driver。并行运行测试时,必须调整端口以避免冲突。阅读并行测试设置指南了解更多详情。 |
例如, 8201 |
remoteAdbHost |
可选的远程ADB服务器主机 | 例如:192.168.0.101 |
avd |
要加载的avd的名称 | 例如, api19 |
avdLaunchTimeout |
avd启动并连接到ADB等待时长(默认60000) |
300000 |
avdReadyTimeout |
avd完成启动动画的等待时间(以毫秒为单位120000)(默认) |
300000 |
avdArgs |
启动avd时,使用的其他模拟器参数 | 例如, -netfast |
useKeystore |
默认情况下,使用自定义密钥库对apks进行签名false |
true 或者 false |
keystorePath |
自定义密钥库的路径,默认为~/.android/debug.keystore |
例如, /path/to.keystore |
keystorePassword |
自定义密钥库的密码 | 例如, foo |
keyAlias |
密钥的别名 | 例如, androiddebugkey |
keyPassword |
密钥密码 | 例如, foo |
chromedriverExecutable |
webdriver可执行文件的绝对本地路径(如果Chromium embedder提供自己的webdriver,则应该使用它而不是与Appium自带的原始chromedriver) | /abs/path/to/webdriver |
chromedriverExecutableDir |
查找Chromedriver可执行文件的目录的绝对路径,用于自动发现兼容的Chromedrivers。如果chromedriverUseSystemExecutable是true,则忽略 |
/abs/path/to/chromedriver/directory |
chromedriverChromeMappingFile |
文件的绝对路径,将Chromedriver版本映射到它支持的最小Chrome。如果chromedriverUseSystemExecutable是,则忽略true |
/abs/path/to/mapping.json |
chromedriverUseSystemExecutable |
如果true,绕过自动Chromedriver配置并使用随Appium下载的版本。如果chromedriverExecutable已设置则忽略。默认为false |
例如, true |
autoWebviewTimeout |
等待Webview上下文变为活动状态的时间(以毫秒为单位)。默认为2000 |
例如 4 |
intentAction |
将用于启动活动的意图操作(默认android.intent.action.MAIN) |
例如android.intent.action.MAIN,android.intent.action.VIEW |
intentCategory |
将用于启动活动的意图类别(默认android.intent.category.LAUNCHER) |
例如android.intent.category.LAUNCHER,android.intent.category.APP_CONTACTS |
intentFlags |
将用于启动活动的标志(默认0x10200000) |
例如 0x10200000 |
optionalIntentArguments |
将用于启动活动的其他意图参数。请参阅Intent参数 | 例如--esn <EXTRA_KEY>,--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>等等。 |
dontStopAppOnReset |
在使用adb启动应用程序之前,不会停止正在测试的应用程序的进程。如果被测试的应用程序是由另一个锚点应用程序创建的,则将此设置为false将允许锚点应用程序的进程在使用adb的测试应用程序启动期间保持活动状态。换句话说,如果dontStopAppOnReset设置为true,我们将不会-S在adb shell am start调用中包含该标志。在省略或设置此功能的情况下false,我们包含该-S标志。默认false |
true 或者 false |
unicodeKeyboard |
启用Unicode输入,默认 false |
true 或者 false |
resetKeyboard |
在运行具有unicodeKeyboard功能的Unicode测试后,将键盘重置为其原始状态。如果单独使用,则忽略。默认false |
true 或者 false |
noSign |
使用调试键跳过检查和签名应用程序,仅适用于UiAutomator,而不适用于selendroid,默认false |
true 或者 false |
ignoreUnimportantViews |
调用setCompressedLayoutHierarchy()uiautomator函数。此功能可以加快测试执行速度,因为Accessibility命令将更快地运行而忽略某些元素。忽略的元素将无法找到,这就是为什么此功能也已实现为可切换设置和功能。默认为false |
true 或者 false |
disableAndroidWatchers |
禁用注意应用程序没有响应和应用程序崩溃的android观察者,这将减少Android设备/模拟器上的CPU使用率。此功能仅适用于UiAutomator,而不适用于selendroid,默认情况下false |
true 或者 false |
chromeOptions |
允许为ChromeDriver传递chromeOptions功能。有关更多信息,请参阅chromeOptions | chromeOptions: {args: ['--disable-popup-blocking']} |
recreateChromeDriverSessions |
移至非ChromeDriver webview时,请终止ChromeDriver会话。默认为false |
true 或者 false |
nativeWebScreenshot |
在网络环境中,使用原生(adb)方法截取屏幕截图,而不是代理ChromeDriver。默认为false |
true 或者 false |
androidScreenshotPath |
将放置屏幕截图的设备上的目录名称。默认为/data/local/tmp |
例如 /sdcard/screenshots/ |
autoGrantPermissions |
让Appium自动确定您的应用所需的权限,并在安装时将其授予应用。默认为false。如果noReset是true,则此功能不起作用。 |
true 或者 false |
networkSpeed |
设置网络速度仿真。指定最大网络上载和下载速度。默认为full |
['full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo']检查-netspeed选项有关avds的速度仿真的更多信息 |
gpsEnabled |
在开始会话之前切换模拟器的gps位置提供程序。默认情况下,仿真器将根据其配置方式启用或不启用此选项。 | true 或者 false |
isHeadless |
将此功能设置true为在无需显示设备显示时运行仿真器无头。false是默认值。isHeadless也支持iOS,检查特定于XCUITest的功能。 |
例如, true |
otherApps |
在运行测试之前要安装的应用程序或应用程序列表(作为JSON数组) | 例如"/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 |
设置区域设置脚本 | 例如,"Cyrl"(西里尔文) |
UIAutomator2特有
| Capability | Description | Values |
|---|---|---|
| uiautomator2ServerLaunchTimeout | 用于等待uiAutomator2服务器启动的超时(以毫秒为单位)。默认为20000 |
例如,20000 |
| uiautomator2ServerInstallTimeout | 用于等待安装uiAutomator2服务器的超时(以毫秒为单位)。默认为20000 |
例如, 20000 |
| skipServerInstallation | 跳过uiAutomator2服务器安装并使用设备中的uiAutomator2服务器。当设备上已安装适当版本的uiAutomator2服务器时,可用于提高启动性能。默认为false |
true 或者false |
iOS 特有
| Capability | Description | Values |
|---|---|---|
| calendarFormat | (仅限Sim)要为iOS模拟器设置的日历格式 | 例如 gregorian |
| bundleId | 被测试应用程序的捆绑ID。用于在真实设备上启动应用程序或在测试启动期间使用需要捆绑ID的其他大写字母。要使用捆绑包ID在真实设备上运行测试,您可以省略“app”功能,但必须提供“udid”。 | 例如 io.appium.TestApp |
| udid | 连接的物理设备的唯一设备标识符 | 例如 1ae203187fc012g |
| launchTimeout | 在假设挂起并且会话失败之前等待仪器的时间量(以ms为单位) | 例如 20000 |
| locationServicesEnabled | (仅限Sim)强制位置服务打开或关闭。默认是保持当前的SIM设置。 | true 或者 false |
| locationServicesAuthorized | (仅限Sim)通过plist将应用程序的位置服务设置为授权或未授权,以便不会弹出位置服务警报。默认是保持当前的SIM设置。请注意,如果您使用此设置,您还必须使用该bundleId功能发送应用程序的包ID。 | true 或者 false |
| autoAcceptAlerts | 如果弹出,则自动接受所有iOS警报。这包括隐私访问许可警报(例如,位置,联系人,照片)。默认值为false。不适用于XCUITest基于测试。 | true 或者 false |
| autoDismissAlerts | 如果弹出,则自动关闭所有iOS警报。这包括隐私访问许可警报(例如,位置,联系人,照片)。默认值为false。不适用于XCUITest基于测试。 | true 或者 false |
| nativeInstrumentsLib | 使用原生intruments lib(即禁用仪器 - 无延迟)。 | true 或者 false |
| nativeWebTap | (仅限Sim)在Safari中启用“真实的”非基于JavaScript的网络点击。默认值:false。警告:根据视口大小/比例,这可能无法准确地点击元素 | true 或者 false |
| safariInitialUrl | (仅限Sim)(> = 8.1)初始safari url,默认为本地欢迎页面 | 例如 https://www.github.com |
| safariAllowPopups | (仅限Sim)允许javascript在Safari中打开新窗口。默认保持当前的SIM设置 | true 或者 false |
| safariIgnoreFraudWarning | (仅限Sim)防止Safari显示欺诈性网站警告。默认保持当前的SIM设置。 | true 或者 false |
| safariOpenLinksInBackground | (仅限Sim)Safari是否应允许在新窗口中打开链接。默认保持当前的SIM设置。 | true 或者 false |
| keepKeyChains | (仅限Sim)是否在启动/完成appium会话时保留密钥链(库/ Keychains) | true 或者 false |
| localizableStringsDir | 在哪里寻找可本地化的字符串。默认en.lproj | en.lproj |
| processArguments | 使用仪器传递给AUT的参数 | 例如, -myflag |
| interKeyDelay | 键入时发送到元素的击键之间的延迟(ms)。 | 例如, 100 |
| showIOSLog | 是否在appium日志中显示从设备捕获的任何日志。默认false | true 或者 false |
| sendKeyStrategy | 用于将测试键入测试字段的策略。模拟器默认:oneByOne。真实设备默认值: | grouped oneByOne,grouped或setValue |
| screenshotWaitTimeout | 等待生成屏幕截图的最大超时秒数。默认值:10 | 例如, 5 |
| waitForAppScript | 用于确定应用程序是否已启动的ios自动化脚本,默认情况下系统等待页面源不为空。结果必须是布尔值 | 例如true;,target.elements().length > 0;,$.delay(5000); true; |
| webviewConnectRetries | 将连接消息发送到远程调试器以获取webview的次数。默认:8 | 例如, 12 |
| appName | 被测应用程序的显示名称。用于在iOS 9+中自动化应用程序的后台处理。 | 例如, UICatalog |
| customSSLCert | (仅限Sim)将SSL证书添加到IOS Simulator。 | 例如 -----BEGIN CERTIFICATE-----MIIFWjCCBEKg...-----END CERTIFICATE----- |
| webkitResponseTimeout | (仅限实际设备)设置等待来自Safari会话中WebKit的响应的时间(毫秒)。默认为5000 | 例如, 10000 |
| remoteDebugProxy | (仅限Sim,<= 11.2)如果设置,Appium通过本地端口(仅限Sim,<= 11.2)或此unix套接字上的代理(仅Sim> = 11.3)上的代理发送和接收远程调试消息,而不是直接与iOS远程调试器通信。 | 例如12000或"/tmp/my.proxy.socket" |
浙公网安备 33010602011771号