Appium详解server capabilities

99封情书 提交于 2020-02-04 03:06:59

通用能力

CapabilityDescriptionValues
automationName 使用哪种自动化引擎 Appium(默认)或SelendroidUiAutomator2用于Android或XCUITestiOS
platformName 使用哪个移动OS平台 iOSAndroidFirefoxOS
platformVersion 移动OS版本 例如12.04.4
deviceName 要使用的移动设备或模拟器的种类 iPhone SimulatoriPad SimulatoriPhone Retina 4-inchAndroid EmulatorGalaxy 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_CACA
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特有

CapabilityDescriptionValues
appActivity app启动的activity MainActivity, .Settings
appPackage app的包名 com.example.android.myApp, com.android.settings
appWaitActivity 要等待的activity,必须设置为第一个启动的activity SplashActivitySplashActivity,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-serverappium-espresso-driver。默认值是8200,一般选择82008299之前的一个端口用于appium-uiautomator2-server83008399选择端口用于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。如果chromedriverUseSystemExecutabletrue,则忽略 /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.MAINandroid.intent.action.VIEW
intentCategory 将用于启动活动的意图类别(默认android.intent.category.LAUNCHER 例如android.intent.category.LAUNCHERandroid.intent.category.APP_CONTACTS
intentFlags 将用于启动活动的标志(默认0x10200000 例如 0x10200000
optionalIntentArguments 将用于启动活动的其他意图参数。请参阅Intent参数 例如--esn <EXTRA_KEY>--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>等等。
dontStopAppOnReset 在使用adb启动应用程序之前,不会停止正在测试的应用程序的进程。如果被测试的应用程序是由另一个锚点应用程序创建的,则将此设置为false将允许锚点应用程序的进程在使用adb的测试应用程序启动期间保持活动状态。换句话说,如果dontStopAppOnReset设置为true,我们将不会-Sadb 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。如果noResettrue,则此功能不起作用。 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特有

CapabilityDescriptionValues
uiautomator2ServerLaunchTimeout 用于等待uiAutomator2服务器启动的超时(以毫秒为单位)。默认为20000 例如,20000
uiautomator2ServerInstallTimeout 用于等待安装uiAutomator2服务器的超时(以毫秒为单位)。默认为20000 例如, 20000
skipServerInstallation 跳过uiAutomator2服务器安装并使用设备中的uiAutomator2服务器。当设备上已安装适当版本的uiAutomator2服务器时,可用于提高启动性能。默认为false true 或者false

iOS 特有

 

CapabilityDescriptionValues
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"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!