Desired Capabilities

Appium 服務(wù)關(guān)鍵字

關(guān)鍵字 描述 實(shí)例
automationName 你想使用的自動(dòng)化測試引擎 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 上,這個(gè)關(guān)鍵字的值必須是使用 instruments -s devices 得到的可使用的設(shè)備名稱之一。在 Android 上雖然這個(gè)參數(shù)目前已被忽略,但仍然需要添加該參數(shù)。
app .ipa or .apk文件所在的本地絕對路徑或者遠(yuǎn)程路徑,也可以是一個(gè)包括兩者之一的.zip。 Appium會(huì)先嘗試安裝路徑對應(yīng)的應(yīng)用在適當(dāng)?shù)恼鏅C(jī)或模擬器上。針對Android系統(tǒng),如果你指定app-package和app-activity(具體見下面)的話,那么就可以不指定app。 會(huì)與 browserName 沖突 比如/abs/path/to/my.apk或http://myapp.com/app.ipa
browserName 需要進(jìn)行自動(dòng)化測試的手機(jī) web 瀏覽器名稱。如果是對應(yīng)用進(jìn)行自動(dòng)化測試,這個(gè)關(guān)鍵字的值應(yīng)為空。 iOS 系統(tǒng)上可以用 'Safari' ,Android 系統(tǒng)上可以用 'Chrome', 'Chromium', 或 'Browser'。
newCommandTimeout 設(shè)置命令超時(shí)時(shí)間,單位:秒。達(dá)到超時(shí)時(shí)間仍未接收到新的命令時(shí) Appium 會(huì)假設(shè)客戶端退出然后自動(dòng)結(jié)束會(huì)話。 比如 60
autoLaunch Appium是否需要自動(dòng)安裝和啟動(dòng)應(yīng)用。默認(rèn)值true true, false
language (Sim/Emu-only) 設(shè)定模擬器 ( simulator / emulator ) 的語言。 如: fr
locale (Sim/Emu-only) 設(shè)定模擬器 ( simulator / emulator ) 的區(qū)域設(shè)置。 如: fr_CA
udid 連接的物理設(shè)備的唯一設(shè)備標(biāo)識(shí) 如: 1ae203187fc012g
orientation (Sim/Emu-only) 在一個(gè)設(shè)定的方向模式中開始測試 LANDSCAPE (橫向) 或 PORTRAIT (縱向)
autoWebview 直接轉(zhuǎn)換到 WebView 上下文。默認(rèn)值 false、 true, false
noReset 不要在會(huì)話前重置應(yīng)用狀態(tài)。默認(rèn)值false。 true, false
fullReset (iOS) 刪除整個(gè)模擬器目錄。(Android) 通過卸載——而不是清空數(shù)據(jù)——來重置應(yīng)用狀態(tài)。在 Android 上,這也會(huì)在會(huì)話結(jié)束后自動(dòng)清除被測應(yīng)用。默認(rèn)值 false true, false

Android特有

關(guān)鍵字 描述 實(shí)例
appActivity 你要從你的應(yīng)用包中啟動(dòng)的 Android Activity 名稱。它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity) MainActivity, .Settings
appPackage 你想運(yùn)行的Android應(yīng)用的包名 比如com.example.android.myApp, com.android.settings
appWaitActivity 你想要等待啟動(dòng)的 Android Activity 名稱 SplashActivity
deviceReadyTimeout 設(shè)置等待一個(gè)模擬器或真機(jī)準(zhǔn)備就緒的超時(shí)時(shí)間 5
androidCoverage 用于執(zhí)行測試的 instrumentation 類。作為命令 adb shell am instrument -e coverage true -w 的-w 參數(shù)。 com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
enablePerformanceLogging (僅適用于 Chrome 和 webview) 開啟Chromedriver 的性能日志。 (默認(rèn) false) true, false
androidDeviceReadyTimeout 等待設(shè)備在啟動(dòng)應(yīng)用后準(zhǔn)備就緒的超時(shí)時(shí)間。以秒為單位。 如 30
androidDeviceSocket 開發(fā)工具的 socket 名稱。只有在被測應(yīng)用是一個(gè)使用 Chromium 內(nèi)核的瀏覽器時(shí)需要。 socket 會(huì)被瀏覽器打開,然后 Chromedriver 把它作為開發(fā)者工具來進(jìn)行連接。 如 chrome_devtools_remote
avd 需要啟動(dòng)的 AVD (安卓虛擬設(shè)備) 名稱。 如 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 使用一個(gè)自定義的 keystore 來對 apk 進(jìn)行重簽名。默認(rèn)值 false true or false
keystorePath 自定義 keystore 的路徑。默認(rèn):~/.android/debug.keystore 如 /path/to.keystore
keystorePassword 自定義 keystore 的密碼。 如 foo
keyAlias key 的別名 如 androiddebugkey
keyPassword key 的密碼 如 foo
chromedriverExecutable webdriver 可執(zhí)行文件的絕對路徑 (如果 Chromium 核心提供了對應(yīng)的webdriver,應(yīng)該用它代替 Appium 自帶的 webdriver) /abs/path/to/webdriver
autoWebviewTimeout 以毫秒為單位,等待 Webview 上下文激活的時(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ù)。請查看 Intent 參數(shù) 如 --esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
stopAppOnReset 在使用 adb 啟動(dòng)應(yīng)用前停止被測應(yīng)用的進(jìn)程 ( process ) 。如果被測應(yīng)用是被另一個(gè)應(yīng)用創(chuàng)建的,當(dāng)這個(gè)參數(shù)被設(shè)定為 false 時(shí),允許另一個(gè)應(yīng)用的進(jìn)程在使用 adb 啟動(dòng)被測應(yīng)用時(shí)繼續(xù)存活。默認(rèn)值 true true 或 false
unicodeKeyboard 使用 Unicode 輸入法。默認(rèn)值false true 或 false
resetKeyboard 在設(shè)定了 unicodeKeyboard 關(guān)鍵字的Unicode 測試結(jié)束后,重置輸入法到原有狀態(tài)。如果單獨(dú)使用,將會(huì)被忽略。默認(rèn)值 false true 或 false
noSign 跳過檢查和對應(yīng)用進(jìn)行 debug 簽名的步驟。只能在使用 UiAutomator 時(shí)使用,使用 selendroid 是不行。默認(rèn)值 false true 或 false
ignoreUnimportantViews 調(diào)用 uiautomator 的函數(shù)setCompressedLayoutHierarchy()。由于 Accessibility 命令在忽略部分元素的情況下執(zhí)行速度會(huì)加快,這個(gè)關(guān)鍵字能加快測試執(zhí)行的速度。被忽略的元素將不能夠被找到,因此這個(gè)關(guān)鍵字同時(shí)也被實(shí)現(xiàn)成可以隨時(shí)改變的 *設(shè)置 ( settings ) * 。默認(rèn)值 false true 或 false

iOS特有

關(guān)鍵字 描述 實(shí)例
calendarFormat (Sim-only) 為iOS的模擬器設(shè)置日歷格式 如 gregorian (公歷)
bundleId 被測應(yīng)用的 bundle ID 。用于在真實(shí)設(shè)備中啟動(dòng)測試,也用于使用其他需要 bundle ID 的關(guān)鍵字啟動(dòng)測試。在使用 bundle ID 在真實(shí)設(shè)備上執(zhí)行測試時(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 (Sim-only) 強(qiáng)制打開或關(guān)閉定位服務(wù)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定 true 或 false
locationServicesAuthorized (Sim-only) 通過修改 plist 文件設(shè)定是否允許應(yīng)用使用定位服務(wù),從而避免定位服務(wù)的警告出現(xiàn)。默認(rèn)值是保持當(dāng)前模擬器的設(shè)定。請注意在使用這個(gè)關(guān)鍵字時(shí),你同時(shí)需要使用 bundleId 關(guān)鍵字來發(fā)送你的應(yīng)用的 bundle ID。 true 或者 false
autoAcceptAlerts 當(dāng) iOS 的個(gè)人信息訪問警告 (如位置、聯(lián)系人、圖片) 出現(xiàn)時(shí),自動(dòng)選擇接受( Accept )。默認(rèn)值 false。 true 或者 false
autoDismissAlerts 當(dāng) iOS 的個(gè)人信息訪問警告 (如位置、聯(lián)系人、圖片) 出現(xiàn)時(shí),自動(dòng)選擇不接受( Dismiss )。默認(rèn)值false。 true 或者 false
nativeInstrumentsLib 使用原生 intruments 庫 (即關(guān)閉 instruments-without-delay ) true 或者 false
nativeWebTap (Sim-only) 在Safari中允許"真實(shí)的",非基于 javascript 的 web 點(diǎn)擊 (tap) 。默認(rèn)值: false。注意:取決于 viewport 大小/比例,點(diǎn)擊操作不一定能精確地點(diǎn)中對應(yīng)的元素。 true 或者 false
safariInitialUrl (Sim-only) (>= 8.1) 初始化 safari 的時(shí)使用的地址。默認(rèn)是一個(gè)本地的歡迎頁面 https://www.github.com
safariAllowPopups (Sim-only) 允許 javascript 在 Safari 中創(chuàng)建新窗口。默認(rèn)保持模擬器當(dāng)前設(shè)置。 true 或者 false
safariIgnoreFraudWarning (Sim-only) 阻止 Safari 顯示此網(wǎng)站可能存在風(fēng)險(xiǎn)的警告。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 true 或者 false
safariOpenLinksInBackground (Sim-only) Safari 是否允許鏈接在新窗口打開。默認(rèn)保持瀏覽器當(dāng)前設(shè)置。 true 或者 false
keepKeyChains (Sim-only) 當(dāng) Appium 會(huì)話開始/結(jié)束時(shí)是否保留存放密碼存放記錄 (keychains) (庫(Library)/鑰匙串(Keychains)) true 或者 false
localizableStringsDir 從哪里查找本地化字符串。默認(rèn)值 en.lproj en.lproj
processArguments 通過 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 以秒為單位,生成屏幕截圖的最長等待時(shí)間。默認(rèn)值: 10。 如 5
waitForAppScript 用于判斷 "應(yīng)用是否被啟動(dòng)” 的 iOS 自動(dòng)化腳本代碼。默認(rèn)情況下系統(tǒng)等待直到頁面內(nèi)容非空。結(jié)果必須是布爾類型。 例如 true;,target.elements().length > 0;, $.delay(5000); true;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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