通用能力
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" |