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; |