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

描述
automationName 自動化測試的引擎 Appium (默認)或者 Selendroid
platformName 使用的手機操做系統 iOSAndroid, 或者 FirefoxOS
platformVersion 手機操做系統的版本 例如 7.14.4
deviceName 使用的手機或模擬器類型 iPhone SimulatoriPad SimulatoriPhone Retina 4-inchAndroid EmulatorGalaxy 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 truefalse
noReset 在當前 session 下不會重置應用的狀態。默認值爲 false truefalse
fullReset (iOS)刪除全部的模擬器文件夾。(Android) 要清除 app 裏的數據,請將應用卸載才能達到重置應用的效果。在 Android, 在 session 完成以後也會將應用卸載掉。默認值爲 false truefalse

Android 獨有

描述
appActivity Activity 的名字是指從你的包中所要啓動的 Android acticity。他一般須要再前面添加. (例如 使用 .MainActivity 代替 MainActivity MainActivity.Settings
appPackage 運行的 Android 應用的包名 com.example.android.myAppcom.android.settings
appWaitActivity 用於等待啓動的 Android Activity 名稱 SplashActivity
appWaitPackage 用於等待啓動的 Android 應用的包 com.example.android.myAppcom.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 truefalse
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 truefalse
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.MAINandroid.intent.action.VIEW
intentCategory 用於啓動 activity 的 intent category。(默認值爲android.intent.category.LAUNCHER) 例如 android.intent.category.LAUNCHERandroid.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 truefalse
unicodeKeyboard 使用 Unicode 輸入法。 默認值爲 false truefalse
resetKeyboard 在設定了 unicodeKeyboard 關鍵字的 Unicode 測試結束後,重置輸入法到原有狀態。若是單獨使用,將會被忽略。默認值爲 false truefalse
noSign 跳過檢查和對應用進行 debug 簽名的步驟。僅適用於 UiAutomator,不適用於 selendroid。 默認值爲 false truefalse
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 truefalse
nativeWebScreenshot 在 web 的上下文(context),使用原生(native)的方法去截圖,而不是用過代理的 ChromeDriver。默認值爲 false truefalse
androidScreenshotPath 在設備中截圖被保存的目錄名。默認值爲 /data/local/tmp 例如 /sdcard/screenshots/
autoGrantPermissions 讓Appium自動肯定您的應用須要哪些權限,並在安裝時將其授予應用。默認設置爲 false truefalse

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 (僅支持模擬器)強制打開或關閉定位服務。默認值是保持當前模擬器的設定. truefalse
locationServicesAuthorized (僅支持模擬器)經過修改 plist 文件設定是否容許應用使用定位服務,從而避免定位服務的警告出現。默認值是保持當前模擬器的設定。請注意在使用這個關鍵字時,你同時須要使用 bundleId 關鍵字來發送你的應用的 bundle ID。 truefalse
autoAcceptAlerts 當警告彈出的時候,都會自動去點接受。包括隱私訪問權限的警告(例如 定位,聯繫人,照片)。默認值爲 false。不支持基於 XCUITest的測試。 truefalse
autoDismissAlerts 當警告彈出的時候,都會自動去點取消。包括隱私訪問權限的警告(例如 定位,聯繫人,照片)。默認值爲 false。不支持基於 XCUITest的測試。 truefalse
nativeInstrumentsLib 使用原生 intruments 庫(即關閉 instruments-without-delay)。 truefalse
nativeWebTap (僅支持模擬器)在Safari中容許「真實的",非基於 javascript 的 web 點擊 (tap) 。 默認值:false。注意:取決於 viewport 大小/比例, 點擊操做不必定能精確地點中對應的元素。 truefalse
safariInitialUrl (僅支持模擬器) (>= 8.1) 初始化 safari 的時使用的地址。默認是一個本地的歡迎頁面 例如 https://www.github.com
safariAllowPopups (僅支持模擬器)容許 javascript 在 Safari 中建立新窗口。默認保持模擬器當前設置。 truefalse
safariIgnoreFraudWarning (僅支持模擬器)阻止 Safari 顯示此網站可能存在風險的警告。默認保持瀏覽器當前設置。 truefalse
safariOpenLinksInBackground (僅支持模擬器)Safari 是否容許連接在新窗口打開。默認保持瀏覽器當前設置。 truefalse
keepKeyChains (僅支持模擬器)當 Appium 會話開始/結束時是否保留存放密碼存放記錄 (keychains) 庫(Library)/鑰匙串(Keychains)) truefalse
localizableStringsDir 從哪裏查找本地化字符串。默認值爲 en.lproj en.lproj
processArguments 經過 instruments 傳遞到 AUT 的參數 例如 -myflag
interKeyDelay 以毫秒爲單位,按下每個按鍵之間的延遲時間 例如 100
showIOSLog 是否在 Appium 的日誌中顯示設備的日誌。默認值爲 false truefalse
sendKeyStrategy 輸入文字到文字框的策略。模擬器默認值:oneByOne(一個接着一個)。真實設備默認值:grouped (分組輸入) oneByOnegroupedsetValue
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 證書。 例如 
-----BEGIN CERTIFICATE-----MIIFWjCCBEKg...
-----END CERTIFICATE-----

使用 XCUITest(iOS 獨有)

描述
processArguments 將會傳送到 WebDriverAgent 的進程參數與環境 { args: ["a", "b", "c"] , env: { "a": "b", "c": "d" } } 或 '{"args": ["a", "b", "c"], "env": { "a": "b", "c": "d" }}'
wdaLocalPort 若是這個值被指定了,Mac 主機就會使用這個端口,經過 USB 發送數據到 iOS 設備中。默認的端口與 iOS 設備中 WDA 的端口號是一致的。 例如 8100
showXcodeLog 是否顯示運行測試時 Xcode 的輸出日誌,若是值設置爲 true ,則會在啓動的時候產生大量的額外日誌。默認設置爲 false 例如 true
iosInstallPause 安裝應用程序與啓動 WebDriverAgent 之間中止的間隔時間(以毫秒爲單位),特別適用於體積較大的包。默認是設置爲 0 例如 8000
xcodeConfigFile 一個可選的 Xcode 可配置文件的完整路徑,用於指定在真機上運行 WebDriverAgent 的我的身份或者團隊身份的代碼簽名。 例如 /path/to/myconfig.xcconfig
keychainPath 從系統的 keychain 中導出私有開發祕鑰的完整路徑。在真機測試時與 keychainPassword 配合使用。 例如 /path/to/MyPrivateKey.p12
keychainPassword 在 keychainPath 中指定 keychain 的解鎖密碼。 例如 super awesome password
scaleFactor 模擬器縮放因子。這對於默認分辨率是大於實際分辨的模擬器來講很是有用。所以,你不用上下滑動模擬器的屏幕就能看到全部模擬器顯示的內容了。 可接受的值爲: '1.0', '0.75', '0.5', '0.33' 和 '0.25'。 這些值都應該是一個字符串
preventWDAAttachments 設置 WebDriverAgent 項目中的 DerivedData 文件夾的權限爲僅可讀。爲了防止 XCTest 框架產生大量無用的截屏與日誌,該設置是很是必要的,由於這是不可能經過 Apple 提供的接口去關閉的。 設置 capabilitity 爲 true 將會設置 Posix 的文件夾的權限爲 555,設置爲 false 則會將權限重置回 755
webDriverAgentUrl 若提供了 URL,Appium 將在這 URL 上鍊接現有的 WebDriverAgent 實例,而不是從新啓動一個。 例如 http://localhost:8100
useNewWDA 若設置爲 true,則直接卸載設備上現存的全部 WebDriverAgent 客戶端。在某些狀況,該作法能夠提升穩定性。默認設置爲 false 例如 true
wdaLaunchTimeout 等待 WebDriverAgent 可 ping 同的時間(以毫秒爲單位)。默認設置爲 60000ms。 例如 30000
calendarAccessAuthorized 若設置爲 true,則容許在 iOS 模擬器上訪問日曆。若設置爲 false,則不被容許。不然,日曆的 authorizationStatus 會保持不變。 -

You.i 引擎獨有

描述
youiEngineAppAddress 正在運行的應用的設備的 IP 地址。使用 localhost 做爲模擬地址。使用 localhost做爲模擬器地址。使用設備的 IP 地址做爲真機的 IP。 例如 localhost 或 192.168.1.203

WinAppDriver 獨有

 

描述
platformName 運行測試時所在的平臺 例如 Windows
deviceName 運行測試時所使用設備的名字 例如 WindowsPC
app 被測 windows 應用的 appID 或被測的 .exe 文件的路徑。 查閱該文檔可瞭解更多查找 appID 的詳細方法。 例如c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App
相關文章
相關標籤/搜索