通用能力
Capability | Description | Values |
---|---|---|
automationName |
使用哪种自动化引擎 | Appium (默认)或Selendroid 或UiAutomator2 用于Android或XCUITest iOS |
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" |