Appium詳解server capabilities


通用能力

Capability Description Values
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特有

Capability Description Values
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特有

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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM