Appium 服務(wù)器初始化參數(shù)(Capability)
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
automationName |
自動(dòng)化測(cè)試的引擎 |
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 命令可返回一個(gè)有效的設(shè)備的列表听哭。在 Andorid 上雖然這個(gè)參數(shù)目前已被忽略,但仍然需要添加上該參數(shù) |
app |
本地絕對(duì)路徑或遠(yuǎn)程 http URL 所指向的一個(gè)安裝包(.ipa ,.apk ,或 .zip 文件)僵驰。Appium 將其安裝到合適的設(shè)備上蚪战。請(qǐng)注意饭弓,如果您指定了 appPackage 和 appActivity 參數(shù)(見(jiàn)下文)废士,Android 則不需要此參數(shù)了淋肾。該參數(shù)也與 browserName 不兼容硫麻。 |
/abs/path/to/my.apk 或 http://myapp.com/app.ipa
|
browserName |
做自動(dòng)化時(shí)使用的瀏覽器名字。如果是一個(gè)應(yīng)用則只需填寫個(gè)空的字符串 | 'Safari' 對(duì)應(yīng) iOS樊卓,'Chrome', 'Chromium', 或 'Browser' 則對(duì)應(yīng) Android |
newCommandTimeout |
用于客戶端在退出或者結(jié)束 session 之前拿愧,Appium 等待客戶端發(fā)送一條新命令所花費(fèi)的時(shí)間(秒為單位) | 例如 60
|
language |
(Sim/Emu-only) 為模擬器設(shè)置語(yǔ)言 | 例如 fr
|
locale |
(Sim/Emu-only) 為模擬器設(shè)置所在區(qū)域 | 例如 fr_CA
|
udid |
連接真機(jī)的唯一設(shè)備號(hào) | 例如 1ae203187fc012g
|
orientation |
(Sim/Emu-only) 模擬器當(dāng)前的方向 |
豎屏 或 橫屏
|
autoWebview |
直接轉(zhuǎn)換到 Webview 上下文(context)。默認(rèn)值為 false
|
true , false
|
noReset |
在當(dāng)前 session 下不會(huì)重置應(yīng)用的狀態(tài)简识。默認(rèn)值為 false
|
true , false
|
fullReset |
(iOS)刪除所有的模擬器文件夾赶掖。(Android) 要清除 app 里的數(shù)據(jù)感猛,請(qǐng)將應(yīng)用卸載才能達(dá)到重置應(yīng)用的效果七扰。在 Android, 在 session 完成之后也會(huì)將應(yīng)用卸載掉蟆盐。默認(rèn)值為 false
|
true , false
|
Android 獨(dú)有
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
appActivity |
Activity 的名字是指從你的包中所要啟動(dòng)的 Android acticity匀哄。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity ) |
MainActivity , .Settings
|
appPackage |
運(yùn)行的 Android 應(yīng)用的包名 |
com.example.android.myApp , com.android.settings
|
appWaitActivity |
用于等待啟動(dòng)的 Android Activity 名稱 | SplashActivity |
appWaitPackage |
用于等待啟動(dòng)的 Android 應(yīng)用的包 |
com.example.android.myApp , com.android.settings
|
appWaitDuration |
用于等待 appWaitActivity 啟動(dòng)的超時(shí)時(shí)間(以毫秒為單位)(默認(rèn)值為 20000 ) |
30000 |
deviceReadyTimeout |
用于等待模擬器或真機(jī)準(zhǔn)備就緒的超時(shí)時(shí)間 | 5 |
androidCoverage |
用于執(zhí)行測(cè)試的 instrumentation 類谱煤。 傳送 -w 參數(shù)到如下命令 adb shell am instrument -e coverage true -w
|
com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation |
enablePerformanceLogging |
(僅適用于 Chrome 與 webview)開(kāi)啟 Chromedriver 的性能日志学少。(默認(rèn)值為 false ) |
true , false
|
androidDeviceReadyTimeout |
用于等待設(shè)備在啟動(dòng)應(yīng)用后準(zhǔn)備就緒的超時(shí)時(shí)間嚎莉。以秒為單位影斑。 | 例如 30
|
androidInstallTimeout |
用于等待在設(shè)備中安裝 apk 所花費(fèi)的時(shí)間(以毫秒為單位)后裸。默認(rèn)值為 90000
|
例如 90000
|
adbPort |
用來(lái)連接 ADB 服務(wù)器的端口(默認(rèn)值為 5037 ) |
5037 |
androidDeviceSocket |
開(kāi)發(fā)工具的 socket 名稱洼裤。只有在被測(cè)應(yīng)用是一個(gè)使用 Chromium 內(nèi)核的瀏覽器時(shí)才需要序厉。socket 會(huì)被瀏覽器打開(kāi)锐膜,然后 Chromedriver 把它作為開(kāi)發(fā)者工具來(lái)進(jìn)行連接。 | 例如 chrome_devtools_remote
|
avd |
被啟動(dòng) avd 的名字 | 例如 api19
|
avdLaunchTimeout |
用于等待 avd 啟動(dòng)并連接 ADB 的超時(shí)時(shí)間(以毫秒為單位)弛房,默認(rèn)值為 120000 道盏。 |
300000 |
avdReadyTimeout |
用于等待 avd 完成啟動(dòng)動(dòng)畫的超時(shí)時(shí)間(以毫秒為單位),默認(rèn)值為 120000 文捶。 |
300000 |
avdArgs |
啟動(dòng) avd 時(shí)使用的額外參數(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í)行文件的絕對(duì)路徑(如果 Chromium 內(nèi)嵌一個(gè)自己提供的 webdriver,則應(yīng)使用他去替換掉 Appium 自帶的 chromedriver) | /abs/path/to/webdriver |
autoWebviewTimeout |
用于等待 Webview 上下文(context)激活的時(shí)間(以毫秒為單位)粹排。默認(rèn)值為 2000
|
例如 4
|
intentAction |
用于啟動(dòng) activity 的 intent action(默認(rèn)值為 android.intent.action.MAIN ) |
例如 android.intent.action.MAIN , android.intent.action.VIEW
|
intentCategory |
用于啟動(dòng) activity 的 intent category种远。(默認(rèn)值為 android.intent.category.LAUNCHER ) |
例如 android.intent.category.LAUNCHER , android.intent.category.APP_CONTACTS
|
intentFlags |
用于啟動(dòng) activity 的標(biāo)識(shí)(flags)(默認(rèn)值為 0x10200000 ) |
例如 0x10200000
|
optionalIntentArguments |
用于啟動(dòng) activity 的額外 intent 參數(shù)。請(qǐng)查看 Intent 參數(shù) | 例如 --esn <EXTRA_KEY> , --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> , 等等顽耳。 |
dontStopAppOnReset |
在使用 adb 啟動(dòng)應(yīng)用之前坠敷,不要終止被測(cè)應(yīng)用的進(jìn)程妙同。如果被測(cè)應(yīng)用是被其他鉤子(anchor)應(yīng)用所創(chuàng)建的,設(shè)置該參數(shù)為 false 后常拓,就允許鉤子(anchor)應(yīng)用的進(jìn)程在使用 adb 啟動(dòng)被測(cè)應(yīng)用期間仍然存在渐溶。換而言之,設(shè)置 dontStopAppOnReset 為 true 后弄抬,我們?cè)?adb shell am start 的調(diào)用中不需要包含 -S 標(biāo)識(shí)(flag)茎辐。忽略該 capability 或 設(shè)置為 false 的話,就需要包含 -S 標(biāo)識(shí)(flag)掂恕。默認(rèn)值為 false
|
true 或false
|
unicodeKeyboard |
使用 Unicode 輸入法拖陆。 默認(rèn)值為 false
|
true 或false
|
resetKeyboard |
在設(shè)定了 unicodeKeyboard 關(guān)鍵字的 Unicode 測(cè)試結(jié)束后,重置輸入法到原有狀態(tài)懊亡。如果單獨(dú)使用依啰,將會(huì)被忽略。默認(rèn)值為 false
|
true 或false
|
noSign |
跳過(guò)檢查和對(duì)應(yīng)用進(jìn)行 debug 簽名的步驟店枣。僅適用于 UiAutomator速警,不適用于 selendroid。 默認(rèn)值為 false
|
true 或false
|
ignoreUnimportantViews |
調(diào)用 uiautomator 的函數(shù) setCompressedLayoutHierarchy() 鸯两。由于 Accessibility 命令在忽略部分元素的情況下執(zhí)行速度會(huì)加快闷旧,這個(gè)關(guān)鍵字能加快測(cè)試執(zhí)行的速度。被忽略的元素將不能夠被找到钧唐,因此這個(gè)關(guān)鍵字同時(shí)也被實(shí)現(xiàn)成可以隨時(shí)改變的 設(shè)置 ( settings )忙灼。 默認(rèn)值為 false
|
true 或 false
|
disableAndroidWatchers |
禁用 android 監(jiān)視器(watchers)。監(jiān)視器用于見(jiàn)識(shí)應(yīng)用程序的無(wú)響應(yīng)狀態(tài)(anr)和崩潰(crash)钝侠,禁用會(huì)降低 Android 設(shè)備或模擬器的 CPU 使用率该园。該 capability 僅在使用 UiAutomator 時(shí)有效,不適用于 selendroid帅韧,默認(rèn)設(shè)置為 false 里初。 |
true 或 false
|
chromeOptions |
允許對(duì) ChromeDriver 傳 chromeOptions 的參數(shù)。了解更多信息請(qǐng)查閱 chromeOptions | chromeOptions: {args: ['--disable-popup-blocking']} |
recreateChromeDriverSessions |
當(dāng)移除非 ChromeDriver webview時(shí)忽舟,終止掉 ChromeDriver 的 session双妨。默認(rèn)設(shè)置為 false
|
true 或false
|
nativeWebScreenshot |
在 web 的上下文(context),使用原生(native)的方法去截圖萧诫,而不是用過(guò)代理的 ChromeDriver斥难。默認(rèn)值為 false
|
true 或false
|
androidScreenshotPath |
在設(shè)備中截圖被保存的目錄名。默認(rèn)值為 /data/local/tmp
|
例如 /sdcard/screenshots/
|
autoGrantPermissions |
讓Appium自動(dòng)確定您的應(yīng)用需要哪些權(quán)限帘饶,并在安裝時(shí)將其授予應(yīng)用哑诊。默認(rèn)設(shè)置為 false
|
true 或false
|
iOS 獨(dú)有
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
calendarFormat |
(僅支持模擬器) 為iOS的模擬器設(shè)置日歷格式 | 例如 gregorian
|
bundleId |
被測(cè)應(yīng)用的 bundle ID 。用于在真實(shí)設(shè)備中啟動(dòng)測(cè)試及刻,也用于使用其他需要 bundle ID 的關(guān)鍵字啟動(dòng)測(cè)試镀裤。在使用 bundle ID 在真實(shí)設(shè)備上執(zhí)行測(cè)試時(shí)竞阐,你可以不提供 app 關(guān)鍵字,但你必須提供 udid 暑劝。 |
例如 io.appium.TestApp
|
udid |
連接的真實(shí)設(shè)備的唯一設(shè)備編號(hào) (Unique device identifier) | 例如 1ae203187fc012g
|
launchTimeout |
以毫秒為單位骆莹,在 Appium 運(yùn)行失敗之前設(shè)置一個(gè)等待 instruments 的時(shí)間 | 例如 20000
|
locationServicesEnabled |
(僅支持模擬器)強(qiáng)制打開(kāi)或關(guān)閉定位服務(wù)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定. |
true 或false
|
locationServicesAuthorized |
(僅支持模擬器)通過(guò)修改 plist 文件設(shè)定是否允許應(yīng)用使用定位服務(wù)担猛,從而避免定位服務(wù)的警告出現(xiàn)幕垦。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定。請(qǐng)注意在使用這個(gè)關(guān)鍵字時(shí)傅联,你同時(shí)需要使用 bundleId 關(guān)鍵字來(lái)發(fā)送你的應(yīng)用的 bundle ID先改。 |
true 或false
|
autoAcceptAlerts |
當(dāng)警告彈出的時(shí)候,都會(huì)自動(dòng)去點(diǎn)接受蒸走。包括隱私訪問(wèn)權(quán)限的警告(例如 定位仇奶,聯(lián)系人,照片)比驻。默認(rèn)值為 false该溯。不支持基于 XCUITest 的測(cè)試。 |
true 或false
|
autoDismissAlerts |
當(dāng)警告彈出的時(shí)候别惦,都會(huì)自動(dòng)去點(diǎn)取消狈茉。包括隱私訪問(wèn)權(quán)限的警告(例如 定位,聯(lián)系人步咪,照片)论皆。默認(rèn)值為 false益楼。不支持基于 XCUITest 的測(cè)試猾漫。 |
true 或false
|
nativeInstrumentsLib |
使用原生 intruments 庫(kù)(即關(guān)閉 instruments-without-delay)。 |
true 或false
|
nativeWebTap |
(僅支持模擬器)在Safari中允許“真實(shí)的"感凤,非基于 javascript 的 web 點(diǎn)擊 (tap) 悯周。 默認(rèn)值:false 。注意:取決于 viewport 大小/比例陪竿, 點(diǎn)擊操作不一定能精確地點(diǎn)中對(duì)應(yīng)的元素禽翼。 |
true 或false
|
safariInitialUrl |
(僅支持模擬器) (>= 8.1) 初始化 safari 的時(shí)使用的地址。默認(rèn)是一個(gè)本地的歡迎頁(yè)面 | 例如 https://www.github.com
|
safariAllowPopups |
(僅支持模擬器)允許 javascript 在 Safari 中創(chuàng)建新窗口族跛。默認(rèn)保持模擬器當(dāng)前設(shè)置闰挡。 |
true 或false
|
safariIgnoreFraudWarning |
(僅支持模擬器)阻止 Safari 顯示此網(wǎng)站可能存在風(fēng)險(xiǎn)的警告。默認(rèn)保持瀏覽器當(dāng)前設(shè)置礁哄。 |
true 或false
|
safariOpenLinksInBackground |
(僅支持模擬器)Safari 是否允許鏈接在新窗口打開(kāi)长酗。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 |
true 或false
|
keepKeyChains |
(僅支持模擬器)當(dāng) Appium 會(huì)話開(kāi)始/結(jié)束時(shí)是否保留存放密碼存放記錄 (keychains) 庫(kù)(Library)/鑰匙串(Keychains)) |
true 或false
|
localizableStringsDir |
從哪里查找本地化字符串桐绒。默認(rèn)值為 en.lproj
|
en.lproj |
processArguments |
通過(guò) instruments 傳遞到 AUT 的參數(shù) | 例如 -myflag
|
interKeyDelay |
以毫秒為單位夺脾,按下每一個(gè)按鍵之間的延遲時(shí)間 | 例如 100
|
showIOSLog |
是否在 Appium 的日志中顯示設(shè)備的日志之拨。默認(rèn)值為 false
|
true 或false
|
sendKeyStrategy |
輸入文字到文字框的策略。模擬器默認(rèn)值:oneByOne (一個(gè)接著一個(gè))咧叭。真實(shí)設(shè)備默認(rèn)值:grouped (分組輸入) |
oneByOne , grouped 或setValue
|
screenshotWaitTimeout |
以秒為單位蚀乔,生成屏幕截圖的最長(zhǎng)等待時(shí)間。默認(rèn)值為:10 | 例如 5
|
waitForAppScript |
用于判斷 "應(yīng)用是否被啟動(dòng)” 的 iOS 自動(dòng)化腳本代碼菲茬。默認(rèn)情況下系統(tǒng)等待直到頁(yè)面內(nèi)容非空吉挣。結(jié)果必須是布爾類型。 | 例如 true; , target.elements().length > 0; , $.delay(5000); true;
|
webviewConnectRetries |
用于獲取 webview 失敗時(shí)婉弹,發(fā)送連接信息到遠(yuǎn)程調(diào)試器的次數(shù)听想。默認(rèn)次數(shù)為: 8
|
例如 12
|
appName |
被測(cè)應(yīng)用的名字。 用于支持 iOS 9 以上系統(tǒng)的應(yīng)用的自動(dòng)化马胧。 | 例如 UICatalog
|
customSSLCert |
(Sim/Emu-only) 給模擬器添加一個(gè) SSL 證書汉买。 | 例如 -----BEGIN CERTIFICATE-----MIIFWjCCBEKg... -----END CERTIFICATE-----
|
使用 XCUITest(iOS 獨(dú)有)
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
processArguments |
將會(huì)傳送到 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 |
如果這個(gè)值被指定了,Mac 主機(jī)就會(huì)使用這個(gè)端口佩脊,通過(guò) USB 發(fā)送數(shù)據(jù)到 iOS 設(shè)備中蛙粘。默認(rèn)的端口與 iOS 設(shè)備中 WDA 的端口號(hào)是一致的。 | 例如 8100
|
showXcodeLog |
是否顯示運(yùn)行測(cè)試時(shí) Xcode 輸出日志威彰,如果值設(shè)置為 true 出牧,則會(huì)在啟動(dòng)的時(shí)候產(chǎn)生大量的額外日志。默認(rèn)設(shè)置為 false 歇盼。 |
例如 true
|
iosInstallPause |
安裝應(yīng)用程序與啟動(dòng) WebDriverAgent 之間停止的間隔時(shí)間(以毫秒為單位)舔痕,特別適用于體積較大的包。默認(rèn)是設(shè)置為 0 豹缀。 |
例如 8000
|
xcodeConfigFile |
一個(gè)可選的 Xcode 可配置文件的完整路徑伯复,用于指定在真機(jī)上運(yùn)行 WebDriverAgent 的個(gè)人身份或者團(tuán)隊(duì)身份的代碼簽名。 | 例如 /path/to/myconfig.xcconfig
|
keychainPath |
從系統(tǒng)的 keychain 中導(dǎo)出私有開(kāi)發(fā)秘鑰的完整路徑邢笙。在真機(jī)測(cè)試時(shí)與 keychainPassword 配合使用啸如。 |
例如 /path/to/MyPrivateKey.p12
|
keychainPassword |
在 keychainPath 中指定 keychain 的解鎖密碼。 |
例如 super awesome password
|
scaleFactor |
模擬器縮放因子氮惯。這對(duì)于默認(rèn)分辨率是大于實(shí)際分辨的模擬器來(lái)說(shuō)非常有用叮雳。因此,你不用上下滑動(dòng)模擬器的屏幕就能看到所有模擬器顯示的內(nèi)容了妇汗。 | 可接受的值為: '1.0', '0.75', '0.5', '0.33' 和 '0.25' 帘不。 這些值都應(yīng)該是一個(gè)字符串 |
preventWDAAttachments |
設(shè)置 WebDriverAgent 項(xiàng)目中的 DerivedData 文件夾的權(quán)限為僅可讀 。為了防止 XCTest 框架產(chǎn)生大量無(wú)用的截屏與日志杨箭,該設(shè)置是非常必要的寞焙,因?yàn)檫@是不可能通過(guò) Apple 提供的接口去關(guān)閉的。 |
設(shè)置 capabilitity 為 true 將會(huì)設(shè)置 Posix 的文件夾的權(quán)限為 555 告唆,設(shè)置為 false 則會(huì)將權(quán)限重置回 755
|
webDriverAgentUrl |
若提供了 URL棺弊,Appium 將在這 URL 上連接現(xiàn)有的 WebDriverAgent 實(shí)例晶密,而不是重新啟動(dòng)一個(gè)。 | 例如 http://localhost:8100
|
useNewWDA |
若設(shè)置為 true 模她,則直接卸載設(shè)備上現(xiàn)存的所有 WebDriverAgent 客戶端稻艰。在某些情況,該做法可以提高穩(wěn)定性侈净。默認(rèn)設(shè)置為 false 尊勿。 |
例如 true
|
wdaLaunchTimeout |
等待 WebDriverAgent 可 ping 同的時(shí)間(以毫秒為單位)。默認(rèn)設(shè)置為 60000ms畜侦。 | 例如 30000
|
calendarAccessAuthorized |
若設(shè)置為 true 元扔,則允許在 iOS 模擬器上訪問(wèn)日歷。若設(shè)置為 false 旋膳,則不被允許澎语。否則,日歷的 authorizationStatus 會(huì)保持不變验懊。 |
- |
You.i 引擎獨(dú)有
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
youiEngineAppAddress |
正在運(yùn)行的應(yīng)用的設(shè)備的 IP 地址擅羞。使用 localhost 作為模擬地址。使用 localhost 作為模擬器地址义图。使用設(shè)備的 IP 地址作為真機(jī)的 IP减俏。 |
例如 localhost 或 192.168.1.203
|
WinAppDriver 獨(dú)有
<expand_table>
鍵 | 描述 | 值 |
---|---|---|
platformName |
運(yùn)行測(cè)試時(shí)所在的平臺(tái) | 例如 Windows
|
deviceName |
運(yùn)行測(cè)試時(shí)所使用設(shè)備的名字 | 例如 WindowsPC
|
app |
被測(cè) windows 應(yīng)用的 appID 或被測(cè)的 .exe 文件的路徑。 查閱該文檔可了解更多查找 appID 的詳細(xì)方法碱工。 | 例如 c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App
|