天天看點

Appium伺服器初始化參數(Capability)

描述

​automationName​

​                                       
自動化測試的引擎 Appium (預設)或者 Selendroid

​platformName​

使用的手機作業系統 iOS, Android, 或者 FirefoxOS

​platformVersion​

手機作業系統的版本 例如 7.1, 4.4

​deviceName​

使用的手機或模拟器類型 iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等等… 在 iOS 上,使用 Instruments 的 instruments -s devices 指令可傳回一個有效的裝置的清單。在 Andorid 上雖然這個參數目前已被忽略,但仍然需要添加上該參數

​app​

本地絕對路徑_或_遠端 http URL 所指向的一個安裝包(.ipa,.apk,或 .zip 檔案)。Appium 将其安裝到合适的裝置上。請注意,如果您指定了 appPackage 和 appActivity 參數(見下文),Android 則不需要此參數了。該參數也與 browserName 不相容。 /abs/path/to/my.apk 或 ​​http://myapp.com/app.ipa​​

​browserName​

做自動化時使用的浏覽器名字。 如果是一個應用則隻需填寫個空的字元串 ‘Safari’ 對應 iOS,‘Chrome’, ‘Chromium’, 或 ‘Browser’ 則對應 Android

​newCommandTimeout​

用于用戶端在退出或者結束 session 之前,Appium 等待用戶端發送一條新指令所花費的時間(秒為機關) 例如 60

​language​

(Sim/Emu-only) 為模拟器設定語言 例如 fr

​locale​

(Sim/Emu-only) 為模拟器設定所在區域 例如 fr_CA

​udid​

連接配接真機的唯一裝置号 例如 1ae203187fc012g

​orientation​

(Sim/Emu-only) 模拟器目前的方向 豎屏 或 橫屏

​autoWebview​

直接轉換到 Webview 上下文(context)。 預設值為 false true, false

​noReset​

在目前 session 下不會重置應用的狀态。​

​True​

​表示每次運作不重新啟動
預設值為 false true, false

​fullReset​

(iOS)删除所有的模拟器檔案夾。(Android) 要清除 app 裡的資料,請将應用解除安裝才能達到重置應用的效果。在 Android, 在 session 完成之後也會将應用解除安裝掉。 預設值為 false true, false

Android 獨有

描述

​appActivity​

​                                                      
Activity 的名字是指從你的包中所要啟動的 Android acticity。他通常需要再前面添加. (例如 使用 .​

​MainActivity​

​ 代替 MainActivity)
MainActivity, .Settings

​appPackage​

運作的 Android 應用的包名 com.example.android.myApp, com.android.settings

​appWaitActivity​

用于等待啟動的 Android Activity 名稱 SplashActivity

​appWaitPackage​

用于等待啟動的 Android 應用的包 com.example.android.myApp, com.android.settings

​appWaitDuration​

用于等待 appWaitActivity 啟動的逾時時間(以毫秒為機關)(預設值為 20000) 30000

​deviceReadyTimeout​

用于等待模拟器或真機準備就緒的逾時時間 5

​androidCoverage​

用于執行測試的 instrumentation 類。 傳送 -w 參數到如下指令 ​

​adb shell am instrument -e coverage true -w​

​com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation​

​enablePerformanceLogging​

(僅适用于 Chrome 與 webview)開啟 Chromedriver 的性能日志。(預設值為 false) true, false

​androidDeviceReadyTimeout​

用于等待裝置在啟動應用後準備就緒的逾時時間。以秒為機關。 例如 30

​androidInstallTimeout​

用于等待在裝置中安裝 apk 所花費的時間(以毫秒為機關)。預設值為 90000 例如 90000

​adbPort​

用來連接配接 ADB 伺服器的端口(預設值為 5037) 5037

​androidDeviceSocket​

開發工具的 socket 名稱。隻有在被測應用是一個使用 Chromium 核心的浏覽器時才需要。socket 會被浏覽器打開,然後 Chromedriver 把它作為開發者工具來進行連接配接。 例如 chrome_devtools_remote

​avd​

被啟動 avd 的名字 例如 api19

​avdLaunchTimeout​

用于等待 avd 啟動并連接配接 ADB 的逾時時間(以毫秒為機關),預設值為 120000。 300000

​avdReadyTimeout​

用于等待 avd 完成啟動動畫的逾時時間(以毫秒為機關),預設值為 120000。 300000

​avdArgs​

啟動 avd 時使用的額外參數 例如 -netfast

​useKeystore​

使用自定義的 keystore 給 apk 簽名,預設值為 false true或false

​keystorePath​

自定義 keystore 的路徑, 預設路徑為 ~/.android/debug.keystore 例如 /path/to.keystore

​keystorePassword​

自定義 keystore 的密碼 例如 foo

​keyAlias​

key 的别名 例如 androiddebugkey

​keyPassword​

key 的密碼 例如 foo

​chromedriverExecutable​

webdriver 可執行檔案的絕對路徑(如果 Chromium 内嵌一個自己提供的 webdriver,則應使用他去替換掉 Appium 自帶的 chromedriver) /abs/path/to/webdriver

​autoWebviewTimeout​

用于等待 Webview 上下文(context)激活的時間(以毫秒為機關)。預設值為 2000 例如 4

​intentAction​

用于啟動 activity 的 intent action(預設值為 android.intent.action.MAIN) 例如 ​

​android.intent.action.MAIN, android.intent.action.VIEW​

​intentCategory​

用于啟動 activity 的 intent category。(預設值為 android.intent.category.LAUNCHER) 例如 android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS

​intentFlags​

用于啟動 activity 的辨別(flags)(預設值為 0x10200000) 例如 0x10200000

​optionalIntentArguments​

用于啟動 activity 的額外 intent 參數。請檢視 Intent 參數 例如 ​

​--esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>​

​, 等等。

​dontStopAppOnReset​

在使用 adb 啟動應用之前,不要終止被測應用的程序。如果被測應用是被其他鈎子(anchor)應用所建立的,設定該參數為 false 後,就允許鈎子(anchor)應用的程序在使用 adb 啟動被測應用期間仍然存在。換而言之,設定 dontStopAppOnReset 為 true 後,我們在 adb shell am start 的調用中不需要包含 -S辨別(flag)。忽略該 capability 或 設定為 false 的話,就需要包含 -S 辨別(flag)。預設值為 false

​true​

​​或​

​false​

​unicodeKeyboard​

使用 Unicode 輸入法。 預設值為 false true或false

​resetKeyboard​

在設定了 unicodeKeyboard 關鍵字的 Unicode 測試結束後,重置輸入法到原有狀态。如果單獨使用,将會被忽略。預設值為 false true或false

​noSign​

跳過檢查和對應用進行 debug 簽名的步驟。僅适用于 UiAutomator,不适用于 ​

​selendroid​

​。 預設值為 false

​true​

​​或​

​false​

​ignoreUnimportantViews​

調用 uiautomator 的函數 setCompressedLayoutHierarchy()。由于 Accessibility 指令在忽略部分元素的情況下執行速度會加快,這個關鍵字能加快測試執行的速度。被忽略的元素将不能夠被找到,是以這個關鍵字同時也被實作成可以随時改變的 設定 ( settings )。 預設值為 false true 或 false

​disableAndroidWatchers​

禁用 android 螢幕(watchers)。螢幕用于見識應用程式的無響應狀态(anr)和崩潰(crash),禁用會降低 Android 裝置或模拟器的 CPU 使用率。該 capability 僅在使用 UiAutomator 時有效,不适用于 selendroid,預設設定為 false。 true 或 false

​chromeOptions​

允許對 ChromeDriver 傳 chromeOptions 的參數。了解更多資訊請查閱 chromeOptions

​chromeOptions: {args: ['--disable-popup-blocking']}​

​recreateChromeDriverSessions​

當移除非 ChromeDriver webview時,終止掉 ChromeDriver 的 session。預設設定為 false true或false

​nativeWebScreenshot​

在 web 的上下文(context),使用原生(native)的方法去截圖,而不是用過代理的 ChromeDriver。預設值為 false true或false

​androidScreenshotPath​

在裝置中截圖被儲存的目錄名。預設值為 /data/local/tmp 例如 ​

​/sdcard/screenshots/​

​autoGrantPermissions​

讓Appium自動确定您的應用需要哪些權限,并在安裝時将其授予應用。預設設定為 false true或false

iOS 獨有

描述

​calendarFormat​

​                                                       
(僅支援模拟器) 為iOS的模拟器設定月曆格式 例如 gregorian

​bundleId​

被測應用的 bundle ID 。用于在真實裝置中啟動測試,也用于使用其他需要 bundle ID 的關鍵字啟動測試。在使用 bundle ID 在真實裝置上執行測試時,你可以不提供 app 關鍵字,但你必須提供 udid 。 例如 io.appium.TestApp

​udid​

連接配接的真實裝置的唯一裝置編号 (Unique device identifier) 例如 1ae203187fc012g

​launchTimeout​

以毫秒為機關,在 Appium 運作失敗之前設定一個等待 instruments 的時間 例如 20000

​locationServicesEnabled​

(僅支援模拟器)強制打開或關閉定位服務。預設值是保持目前模拟器的設定. true或false

​locationServicesAuthorized​

(僅支援模拟器)通過修改 plist 檔案設定是否允許應用使用定位服務,進而避免定位服務的警告出現。預設值是保持目前模拟器的設定。請注意在使用這個關鍵字時,你同時需要使用 bundleId 關鍵字來發送你的應用的 bundle ID。 true或false

​autoAcceptAlerts​

當警告彈出的時候,都會自動去點接受。包括隐私通路權限的警告(例如 定位,聯系人,照片)。預設值為 false。不支援基于 XCUITest 的測試。 true或false

​autoDismissAlerts​

當警告彈出的時候,都會自動去點取消。包括隐私通路權限的警告(例如 定位,聯系人,照片)。預設值為 false。不支援基于 XCUITest 的測試。 true或false

​nativeInstrumentsLib​

使用原生 intruments 庫(即關閉 instruments-without-delay)。 true或false

​nativeWebTap​

(僅支援模拟器)在Safari中允許“真實的",非基于 javascript 的 web 點選 (tap) 。 預設值:false。注意:取決于 viewport 大小/比例, 點選操作不一定能精确地點中對應的元素。 true或false

​safariInitialUrl​

(僅支援模拟器) (>= 8.1) 初始化 safari 的時使用的位址。預設是一個本地的歡迎頁面 例如 ​​https://www.github.com​​

​safariAllowPopups​

(僅支援模拟器)允許 javascript 在 Safari 中建立新視窗。預設保持模拟器目前設定。 true或false

​safariIgnoreFraudWarning​

(僅支援模拟器)阻止 Safari 顯示此網站可能存在風險的警告。預設保持浏覽器目前設定。 true或false

​safariOpenLinksInBackground​

(僅支援模拟器)Safari 是否允許連結在新視窗打開。預設保持浏覽器目前設定。 true或false

​keepKeyChains​

(僅支援模拟器) 當 Appium 會話開始/結束時是否保留存放密碼存放記錄 (keychains) 庫(Library)/鑰匙串(Keychains))

​localizableStringsDir​

從哪裡查找本地化字元串。預設值為 en.lproj en.lproj

​processArguments​

通過 instruments 傳遞到 AUT 的參數 例如 -myflag

​interKeyDelay​

以毫秒為機關,按下每一個按鍵之間的延遲時間 例如 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/Emu-only) 給模拟器添加一個 SSL 證書。