【翻譯】Appium 服務(wù)器初始化參數(shù)(Capability)

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è)備上。請注意,如果您指定了 appPackageappActivity 參數(shù)(見下文),Android 則不需要此參數(shù)了。該參數(shù)也與 browserName 不兼容。 /abs/path/to/my.apkhttp://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 truefalse
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è)置 dontStopAppOnResettrue 后,我們在 adb shell am start 的調(diào)用中不需要包含 -S標(biāo)識(flag)。忽略該 capability 或 設(shè)置為 false 的話,就需要包含 -S 標(biāo)識(flag)。默認(rèn)值為 false truefalse
unicodeKeyboard 使用 Unicode 輸入法。 默認(rèn)值為 false truefalse
resetKeyboard 在設(shè)定了 unicodeKeyboard 關(guān)鍵字的 Unicode 測試結(jié)束后,重置輸入法到原有狀態(tài)。如果單獨使用,將會被忽略。默認(rèn)值為 false truefalse
noSign 跳過檢查和對應(yīng)用進(jìn)行 debug 簽名的步驟。僅適用于 UiAutomator,不適用于 selendroid。 默認(rèn)值為 false truefalse
ignoreUnimportantViews 調(diào)用 uiautomator 的函數(shù) setCompressedLayoutHierarchy()。由于 Accessibility 命令在忽略部分元素的情況下執(zhí)行速度會加快,這個關(guān)鍵字能加快測試執(zhí)行的速度。被忽略的元素將不能夠被找到,因此這個關(guān)鍵字同時也被實現(xiàn)成可以隨時改變的 設(shè)置 ( settings )。 默認(rèn)值為 false truefalse
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。 truefalse
chromeOptions 允許對 ChromeDriver 傳 chromeOptions 的參數(shù)。了解更多信息請查閱 chromeOptions chromeOptions: {args: ['--disable-popup-blocking']}
recreateChromeDriverSessions 當(dāng)移除非 ChromeDriver webview時,終止掉 ChromeDriver 的 session。默認(rèn)設(shè)置為 false truefalse
nativeWebScreenshot 在 web 的上下文(context),使用原生(native)的方法去截圖,而不是用過代理的 ChromeDriver。默認(rèn)值為 false truefalse
androidScreenshotPath 在設(shè)備中截圖被保存的目錄名。默認(rèn)值為 /data/local/tmp 例如 /sdcard/screenshots/
autoGrantPermissions 讓Appium自動確定您的應(yīng)用需要哪些權(quán)限,并在安裝時將其授予應(yīng)用。默認(rèn)設(shè)置為 false truefalse

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è)定. truefalse
locationServicesAuthorized (僅支持模擬器)通過修改 plist 文件設(shè)定是否允許應(yīng)用使用定位服務(wù),從而避免定位服務(wù)的警告出現(xiàn)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定。請注意在使用這個關(guān)鍵字時,你同時需要使用 bundleId 關(guān)鍵字來發(fā)送你的應(yīng)用的 bundle ID。 truefalse
autoAcceptAlerts 當(dāng)警告彈出的時候,都會自動去點接受。包括隱私訪問權(quán)限的警告(例如 定位,聯(lián)系人,照片)。默認(rèn)值為 false。不支持基于 XCUITest 的測試。 truefalse
autoDismissAlerts 當(dāng)警告彈出的時候,都會自動去點取消。包括隱私訪問權(quán)限的警告(例如 定位,聯(lián)系人,照片)。默認(rèn)值為 false。不支持基于 XCUITest 的測試。 truefalse
nativeInstrumentsLib 使用原生 intruments 庫(即關(guān)閉 instruments-without-delay)。 truefalse
nativeWebTap (僅支持模擬器)在Safari中允許“真實的",非基于 javascript 的 web 點擊 (tap) 。 默認(rèn)值:false。注意:取決于 viewport 大小/比例, 點擊操作不一定能精確地點中對應(yīng)的元素。 truefalse
safariInitialUrl (僅支持模擬器) (>= 8.1) 初始化 safari 的時使用的地址。默認(rèn)是一個本地的歡迎頁面 例如 https://www.github.com
safariAllowPopups (僅支持模擬器)允許 javascript 在 Safari 中創(chuàng)建新窗口。默認(rèn)保持模擬器當(dāng)前設(shè)置。 truefalse
safariIgnoreFraudWarning (僅支持模擬器)阻止 Safari 顯示此網(wǎng)站可能存在風(fēng)險的警告。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 truefalse
safariOpenLinksInBackground (僅支持模擬器)Safari 是否允許鏈接在新窗口打開。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 truefalse
keepKeyChains (僅支持模擬器)當(dāng) Appium 會話開始/結(jié)束時是否保留存放密碼存放記錄 (keychains) 庫(Library)/鑰匙串(Keychains)) truefalse
localizableStringsDir 從哪里查找本地化字符串。默認(rèn)值為 en.lproj en.lproj
processArguments 通過 instruments 傳遞到 AUT 的參數(shù) 例如 -myflag
interKeyDelay 以毫秒為單位,按下每一個按鍵之間的延遲時間 例如 100
showIOSLog 是否在 Appium 的日志中顯示設(shè)備的日志。默認(rèn)值為 false truefalse
sendKeyStrategy 輸入文字到文字框的策略。模擬器默認(rèn)值:oneByOne(一個接著一個)。真實設(shè)備默認(rèn)值:grouped (分組輸入) oneByOne, groupedsetValue
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。 例如 localhost192.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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評論 25 709
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,842評論 2 45
  • 高山流水遇知音的故事,我想大家早已耳熟能詳,但其中曲折,恐非每一個人都能娓娓道來,我們來一起從典籍的字里行間尋找答...
    壺上春秋閱讀 1,841評論 0 1
  • 我愿去追尋 天邊那朵云 飄飄蕩蕩悠然似我心 猶如一場夢 醒來有多真 滔滔江水流不盡 綿綿到如今 春花藏恨入泥爛 秋...
    喬預(yù)閱讀 244評論 3 2
  • 很多人羨慕不吵架的夫妻,其實哪有不吵架的夫妻,只有會吵架的夫妻,所以他們的感情越吵越好,可是不會吵架的夫妻,則會導(dǎo)...
    愛家心理閱讀 441評論 2 3

友情鏈接更多精彩內(nèi)容