Appium 服務(wù)器初始化參數(shù)(Capability)
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
automationName |
自動化測試的引擎 |
Appium (默認(rèn))或者 Selendroid
|
platformName |
使用的手機(jī)操作系統(tǒng) |
iOS, Android, 或者 FirefoxOS
|
platformVersion |
手機(jī)操作系統(tǒng)的版本 | 例如 7.1, 4.4
|
deviceName |
使用的手機(jī)或模擬器類型 |
iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等等.... 在 iOS 上,使用 Instruments 的 instruments -s devices 命令可返回一個有效的設(shè)備的列表。在 Andorid 上雖然這個參數(shù)目前已被忽略,但仍然需要添加上該參數(shù) |
app |
本地絕對路徑或遠(yuǎn)程 http URL 所指向的一個安裝包(.ipa,.apk,或 .zip 文件)。Appium 將其安裝到合適的設(shè)備上。請注意,如果您指定了 appPackage 和 appActivity 參數(shù)(見下文),Android 則不需要此參數(shù)了。該參數(shù)也與 browserName 不兼容。 |
/abs/path/to/my.apk 或 http://myapp.com/app.ipa
|
browserName |
做自動化時使用的瀏覽器名字。如果是一個應(yīng)用則只需填寫個空的字符串 | 'Safari' 對應(yīng) iOS,'Chrome', 'Chromium', 或 'Browser' 則對應(yīng) Android |
newCommandTimeout |
用于客戶端在退出或者結(jié)束 session 之前,Appium 等待客戶端發(fā)送一條新命令所花費的時間(秒為單位) | 例如 60
|
language |
(Sim/Emu-only) 為模擬器設(shè)置語言 | 例如 fr
|
locale |
(Sim/Emu-only) 為模擬器設(shè)置所在區(qū)域 | 例如 fr_CA
|
udid |
連接真機(jī)的唯一設(shè)備號 | 例如 1ae203187fc012g
|
orientation |
(Sim/Emu-only) 模擬器當(dāng)前的方向 |
豎屏 或 橫屏
|
autoWebview |
直接轉(zhuǎn)換到 Webview 上下文(context)。默認(rèn)值為 false
|
true, false
|
noReset |
在當(dāng)前 session 下不會重置應(yīng)用的狀態(tài)。默認(rèn)值為 false
|
true, false
|
fullReset |
(iOS)刪除所有的模擬器文件夾。(Android) 要清除 app 里的數(shù)據(jù),請將應(yīng)用卸載才能達(dá)到重置應(yīng)用的效果。在 Android, 在 session 完成之后也會將應(yīng)用卸載掉。默認(rèn)值為 false
|
true, false
|
Android 獨有
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
appActivity |
Activity 的名字是指從你的包中所要啟動的 Android acticity。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity) |
MainActivity, .Settings
|
appPackage |
運行的 Android 應(yīng)用的包名 |
com.example.android.myApp, com.android.settings
|
appWaitActivity |
用于等待啟動的 Android Activity 名稱 | SplashActivity |
appWaitPackage |
用于等待啟動的 Android 應(yīng)用的包 |
com.example.android.myApp, com.android.settings
|
appWaitDuration |
用于等待 appWaitActivity 啟動的超時時間(以毫秒為單位)(默認(rèn)值為 20000) |
30000 |
deviceReadyTimeout |
用于等待模擬器或真機(jī)準(zhǔn)備就緒的超時時間 | 5 |
androidCoverage |
用于執(zhí)行測試的 instrumentation 類。 傳送 -w 參數(shù)到如下命令 adb shell am instrument -e coverage true -w
|
com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation |
enablePerformanceLogging |
(僅適用于 Chrome 與 webview)開啟 Chromedriver 的性能日志。(默認(rèn)值為 false) |
true, false
|
androidDeviceReadyTimeout |
用于等待設(shè)備在啟動應(yīng)用后準(zhǔn)備就緒的超時時間。以秒為單位。 | 例如 30
|
androidInstallTimeout |
用于等待在設(shè)備中安裝 apk 所花費的時間(以毫秒為單位)。默認(rèn)值為 90000
|
例如 90000
|
adbPort |
用來連接 ADB 服務(wù)器的端口(默認(rèn)值為 5037) |
5037 |
androidDeviceSocket |
開發(fā)工具的 socket 名稱。只有在被測應(yīng)用是一個使用 Chromium 內(nèi)核的瀏覽器時才需要。socket 會被瀏覽器打開,然后 Chromedriver 把它作為開發(fā)者工具來進(jìn)行連接。 | 例如 chrome_devtools_remote
|
avd |
被啟動 avd 的名字 | 例如 api19
|
avdLaunchTimeout |
用于等待 avd 啟動并連接 ADB 的超時時間(以毫秒為單位),默認(rèn)值為 120000。 |
300000 |
avdReadyTimeout |
用于等待 avd 完成啟動動畫的超時時間(以毫秒為單位),默認(rèn)值為 120000。 |
300000 |
avdArgs |
啟動 avd 時使用的額外參數(shù) | 例如 -netfast
|
useKeystore |
使用自定義的 keystore 給 apk 簽名,默認(rèn)值為 false
|
true或false
|
keystorePath |
自定義 keystore 的路徑, 默認(rèn)路徑為 ~/.android/debug.keystore | 例如 /path/to.keystore
|
keystorePassword |
自定義 keystore 的密碼 | 例如 foo
|
keyAlias |
key 的別名 | 例如 androiddebugkey
|
keyPassword |
key 的密碼 | 例如 foo
|
chromedriverExecutable |
webdriver 可執(zhí)行文件的絕對路徑(如果 Chromium 內(nèi)嵌一個自己提供的 webdriver,則應(yīng)使用他去替換掉 Appium 自帶的 chromedriver) | /abs/path/to/webdriver |
autoWebviewTimeout |
用于等待 Webview 上下文(context)激活的時間(以毫秒為單位)。默認(rèn)值為 2000
|
例如 4
|
intentAction |
用于啟動 activity 的 intent action(默認(rèn)值為 android.intent.action.MAIN) |
例如 android.intent.action.MAIN, android.intent.action.VIEW
|
intentCategory |
用于啟動 activity 的 intent category。(默認(rèn)值為 android.intent.category.LAUNCHER) |
例如 android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS
|
intentFlags |
用于啟動 activity 的標(biāo)識(flags)(默認(rèn)值為 0x10200000) |
例如 0x10200000
|
optionalIntentArguments |
用于啟動 activity 的額外 intent 參數(shù)。請查看 Intent 參數(shù) | 例如 --esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>, 等等。 |
dontStopAppOnReset |
在使用 adb 啟動應(yīng)用之前,不要終止被測應(yīng)用的進(jìn)程。如果被測應(yīng)用是被其他鉤子(anchor)應(yīng)用所創(chuàng)建的,設(shè)置該參數(shù)為 false 后,就允許鉤子(anchor)應(yīng)用的進(jìn)程在使用 adb 啟動被測應(yīng)用期間仍然存在。換而言之,設(shè)置 dontStopAppOnReset 為 true 后,我們在 adb shell am start 的調(diào)用中不需要包含 -S標(biāo)識(flag)。忽略該 capability 或 設(shè)置為 false 的話,就需要包含 -S 標(biāo)識(flag)。默認(rèn)值為 false
|
true或false
|
unicodeKeyboard |
使用 Unicode 輸入法。 默認(rèn)值為 false
|
true或false
|
resetKeyboard |
在設(shè)定了 unicodeKeyboard 關(guān)鍵字的 Unicode 測試結(jié)束后,重置輸入法到原有狀態(tài)。如果單獨使用,將會被忽略。默認(rèn)值為 false
|
true或false
|
noSign |
跳過檢查和對應(yīng)用進(jìn)行 debug 簽名的步驟。僅適用于 UiAutomator,不適用于 selendroid。 默認(rèn)值為 false
|
true或false
|
ignoreUnimportantViews |
調(diào)用 uiautomator 的函數(shù) setCompressedLayoutHierarchy()。由于 Accessibility 命令在忽略部分元素的情況下執(zhí)行速度會加快,這個關(guān)鍵字能加快測試執(zhí)行的速度。被忽略的元素將不能夠被找到,因此這個關(guān)鍵字同時也被實現(xiàn)成可以隨時改變的 設(shè)置 ( settings )。 默認(rèn)值為 false
|
true 或 false
|
disableAndroidWatchers |
禁用 android 監(jiān)視器(watchers)。監(jiān)視器用于見識應(yīng)用程序的無響應(yīng)狀態(tài)(anr)和崩潰(crash),禁用會降低 Android 設(shè)備或模擬器的 CPU 使用率。該 capability 僅在使用 UiAutomator 時有效,不適用于 selendroid,默認(rèn)設(shè)置為 false。 |
true 或 false
|
chromeOptions |
允許對 ChromeDriver 傳 chromeOptions 的參數(shù)。了解更多信息請查閱 chromeOptions | chromeOptions: {args: ['--disable-popup-blocking']} |
recreateChromeDriverSessions |
當(dāng)移除非 ChromeDriver webview時,終止掉 ChromeDriver 的 session。默認(rèn)設(shè)置為 false
|
true或false
|
nativeWebScreenshot |
在 web 的上下文(context),使用原生(native)的方法去截圖,而不是用過代理的 ChromeDriver。默認(rèn)值為 false
|
true或false
|
androidScreenshotPath |
在設(shè)備中截圖被保存的目錄名。默認(rèn)值為 /data/local/tmp
|
例如 /sdcard/screenshots/
|
autoGrantPermissions |
讓Appium自動確定您的應(yīng)用需要哪些權(quán)限,并在安裝時將其授予應(yīng)用。默認(rèn)設(shè)置為 false
|
true或false
|
iOS 獨有
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
calendarFormat |
(僅支持模擬器) 為iOS的模擬器設(shè)置日歷格式 | 例如 gregorian
|
bundleId |
被測應(yīng)用的 bundle ID 。用于在真實設(shè)備中啟動測試,也用于使用其他需要 bundle ID 的關(guān)鍵字啟動測試。在使用 bundle ID 在真實設(shè)備上執(zhí)行測試時,你可以不提供 app 關(guān)鍵字,但你必須提供 udid 。 |
例如 io.appium.TestApp
|
udid |
連接的真實設(shè)備的唯一設(shè)備編號 (Unique device identifier) | 例如 1ae203187fc012g
|
launchTimeout |
以毫秒為單位,在 Appium 運行失敗之前設(shè)置一個等待 instruments 的時間 | 例如 20000
|
locationServicesEnabled |
(僅支持模擬器)強(qiáng)制打開或關(guān)閉定位服務(wù)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定. |
true或false
|
locationServicesAuthorized |
(僅支持模擬器)通過修改 plist 文件設(shè)定是否允許應(yīng)用使用定位服務(wù),從而避免定位服務(wù)的警告出現(xiàn)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定。請注意在使用這個關(guān)鍵字時,你同時需要使用 bundleId 關(guān)鍵字來發(fā)送你的應(yīng)用的 bundle ID。 |
true或false
|
autoAcceptAlerts |
當(dāng)警告彈出的時候,都會自動去點接受。包括隱私訪問權(quán)限的警告(例如 定位,聯(lián)系人,照片)。默認(rèn)值為 false。不支持基于 XCUITest 的測試。 |
true或false
|
autoDismissAlerts |
當(dāng)警告彈出的時候,都會自動去點取消。包括隱私訪問權(quán)限的警告(例如 定位,聯(lián)系人,照片)。默認(rèn)值為 false。不支持基于 XCUITest 的測試。 |
true或false
|
nativeInstrumentsLib |
使用原生 intruments 庫(即關(guān)閉 instruments-without-delay)。 |
true或false
|
nativeWebTap |
(僅支持模擬器)在Safari中允許“真實的",非基于 javascript 的 web 點擊 (tap) 。 默認(rèn)值:false。注意:取決于 viewport 大小/比例, 點擊操作不一定能精確地點中對應(yīng)的元素。 |
true或false
|
safariInitialUrl |
(僅支持模擬器) (>= 8.1) 初始化 safari 的時使用的地址。默認(rèn)是一個本地的歡迎頁面 | 例如 https://www.github.com
|
safariAllowPopups |
(僅支持模擬器)允許 javascript 在 Safari 中創(chuàng)建新窗口。默認(rèn)保持模擬器當(dāng)前設(shè)置。 |
true或false
|
safariIgnoreFraudWarning |
(僅支持模擬器)阻止 Safari 顯示此網(wǎng)站可能存在風(fēng)險的警告。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 |
true或false
|
safariOpenLinksInBackground |
(僅支持模擬器)Safari 是否允許鏈接在新窗口打開。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 |
true或false
|
keepKeyChains |
(僅支持模擬器)當(dāng) Appium 會話開始/結(jié)束時是否保留存放密碼存放記錄 (keychains) 庫(Library)/鑰匙串(Keychains)) |
true或false
|
localizableStringsDir |
從哪里查找本地化字符串。默認(rèn)值為 en.lproj
|
en.lproj |
processArguments |
通過 instruments 傳遞到 AUT 的參數(shù) | 例如 -myflag
|
interKeyDelay |
以毫秒為單位,按下每一個按鍵之間的延遲時間 | 例如 100
|
showIOSLog |
是否在 Appium 的日志中顯示設(shè)備的日志。默認(rèn)值為 false
|
true或false
|
sendKeyStrategy |
輸入文字到文字框的策略。模擬器默認(rèn)值:oneByOne(一個接著一個)。真實設(shè)備默認(rèn)值:grouped (分組輸入) |
oneByOne, grouped或setValue
|
screenshotWaitTimeout |
以秒為單位,生成屏幕截圖的最長等待時間。默認(rèn)值為:10 | 例如 5
|
waitForAppScript |
用于判斷 "應(yīng)用是否被啟動” 的 iOS 自動化腳本代碼。默認(rèn)情況下系統(tǒng)等待直到頁面內(nèi)容非空。結(jié)果必須是布爾類型。 | 例如 true;, target.elements().length > 0;, $.delay(5000); true;
|
webviewConnectRetries |
用于獲取 webview 失敗時,發(fā)送連接信息到遠(yuǎn)程調(diào)試器的次數(shù)。默認(rèn)次數(shù)為: 8
|
例如 12
|
appName |
被測應(yīng)用的名字。 用于支持 iOS 9 以上系統(tǒng)的應(yīng)用的自動化。 | 例如 UICatalog
|
customSSLCert |
(Sim/Emu-only) 給模擬器添加一個 SSL 證書。 | 例如 -----BEGIN CERTIFICATE-----MIIFWjCCBEKg...-----END CERTIFICATE-----
|
使用 XCUITest(iOS 獨有)
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
processArguments |
將會傳送到 WebDriverAgent 的進(jìn)程參數(shù)與環(huán)境 |
{ args: ["a", "b", "c"] , env: { "a": "b", "c": "d" } } 或 '{"args": ["a", "b", "c"], "env": { "a": "b", "c": "d" }}'
|
wdaLocalPort |
如果這個值被指定了,Mac 主機(jī)就會使用這個端口,通過 USB 發(fā)送數(shù)據(jù)到 iOS 設(shè)備中。默認(rèn)的端口與 iOS 設(shè)備中 WDA 的端口號是一致的。 | 例如 8100
|
showXcodeLog |
是否顯示運行測試時 Xcode 輸出日志,如果值設(shè)置為 true ,則會在啟動的時候產(chǎn)生大量的額外日志。默認(rèn)設(shè)置為 false。 |
例如 true
|
iosInstallPause |
安裝應(yīng)用程序與啟動 WebDriverAgent 之間停止的間隔時間(以毫秒為單位),特別適用于體積較大的包。默認(rèn)是設(shè)置為 0。 |
例如 8000
|
xcodeConfigFile |
一個可選的 Xcode 可配置文件的完整路徑,用于指定在真機(jī)上運行 WebDriverAgent 的個人身份或者團(tuán)隊身份的代碼簽名。 | 例如 /path/to/myconfig.xcconfig
|
keychainPath |
從系統(tǒng)的 keychain 中導(dǎo)出私有開發(fā)秘鑰的完整路徑。在真機(jī)測試時與 keychainPassword 配合使用。 |
例如 /path/to/MyPrivateKey.p12
|
keychainPassword |
在 keychainPath 中指定 keychain 的解鎖密碼。 |
例如 super awesome password
|
scaleFactor |
模擬器縮放因子。這對于默認(rèn)分辨率是大于實際分辨的模擬器來說非常有用。因此,你不用上下滑動模擬器的屏幕就能看到所有模擬器顯示的內(nèi)容了。 | 可接受的值為: '1.0', '0.75', '0.5', '0.33' 和 '0.25'。 這些值都應(yīng)該是一個字符串 |
preventWDAAttachments |
設(shè)置 WebDriverAgent 項目中的 DerivedData 文件夾的權(quán)限為僅可讀。為了防止 XCTest 框架產(chǎn)生大量無用的截屏與日志,該設(shè)置是非常必要的,因為這是不可能通過 Apple 提供的接口去關(guān)閉的。 |
設(shè)置 capabilitity 為 true 將會設(shè)置 Posix 的文件夾的權(quán)限為 555,設(shè)置為 false 則會將權(quán)限重置回 755
|
webDriverAgentUrl |
若提供了 URL,Appium 將在這 URL 上連接現(xiàn)有的 WebDriverAgent 實例,而不是重新啟動一個。 | 例如 http://localhost:8100
|
useNewWDA |
若設(shè)置為 true,則直接卸載設(shè)備上現(xiàn)存的所有 WebDriverAgent 客戶端。在某些情況,該做法可以提高穩(wěn)定性。默認(rèn)設(shè)置為 false。 |
例如 true
|
wdaLaunchTimeout |
等待 WebDriverAgent 可 ping 同的時間(以毫秒為單位)。默認(rèn)設(shè)置為 60000ms。 | 例如 30000
|
calendarAccessAuthorized |
若設(shè)置為 true,則允許在 iOS 模擬器上訪問日歷。若設(shè)置為 false,則不被允許。否則,日歷的 authorizationStatus 會保持不變。 |
- |
You.i 引擎獨有
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
youiEngineAppAddress |
正在運行的應(yīng)用的設(shè)備的 IP 地址。使用 localhost 作為模擬地址。使用 localhost 作為模擬器地址。使用設(shè)備的 IP 地址作為真機(jī)的 IP。 |
例如 localhost 或 192.168.1.203
|
WinAppDriver 獨有
<expand_table>
| 鍵 | 描述 | 值 |
|---|---|---|
platformName |
運行測試時所在的平臺 | 例如 Windows
|
deviceName |
運行測試時所使用設(shè)備的名字 | 例如 WindowsPC
|
app |
被測 windows 應(yīng)用的 appID 或被測的 .exe 文件的路徑。 查閱該文檔可了解更多查找 appID 的詳細(xì)方法。 | 例如 c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App
|