Appium(五):Desired Capabilities

1. Desired Capabilities

Desired Capabilities簡單來講就是一組設置,這些設置可讓測試腳本控制Appium的運行行爲。下面就逐個對Desired Capabilities中的設置進行闡述。首先看與Appium服務器相關的Capability,Android和iOS兩個平臺都是有效的設置。javascript

基本參數:java

automationNameandroid

自動化測試引擎ios

Appium或 Selendroidgit

platformNamegithub

手機操做系統web

iOSAndroid, 或 FirefoxOSchrome

platformVersionapi

手機操做系統版本瀏覽器

如: 7.14.4;ios的 9.0

deviceName

手機或模擬器設備名稱

android的忽略,ios如iPhone Simulator

app

.ipa .apk文件路徑

好比/abs/path/to/my.apkhttp://myapp.com/app.ipa

browserName

啓動手機瀏覽器

iOS如:Safari,Android如:Chrome,Chromium,Browser

newCommandTimeout

設置命令超時時間,單位:秒。

好比 60

autoLaunch

Appium是否須要自動安裝和啓動應用。默認值true

truefalse

language

(Sim/Emu-only) 設定模擬器 ( simulator / emulator ) 的語言。

如: fr

locale

(Sim/Emu-only) 設定模擬器 ( simulator / emulator ) 的區域設置。

如: fr_CA

udid

ios真機的惟一設備標識

如: 1ae203187fc012g

orientation

設置橫屏或豎屏

LANDSCAPE (橫向) 或 PORTRAIT (縱向)

autoWebview

直接轉換到 WebView 上下文。 默認值 false

truefalse

noReset

不要在會話前重置應用狀態。默認值false

truefalse

fullReset

(iOS) 刪除整個模擬器目錄。(Android)經過卸載默認值 false

truefalse

僅對Android測試有效的設置:

關鍵字

描述

實例

appActivity

啓動app包,通常點開頭

如:.MainActivity.Settings

appPackage

Android應用的包名

好比com.example.android.myApp

appWaitActivity

等待啓動的Activity名稱

SplashActivity

deviceReadyTimeout

設置超時時間

5

androidCoverage

用於執行測試的 instrumentation類

com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation

enablePerformanceLogging

(僅適用於 Chrome 和 webview) 開啓 Chromedriver 的性能日誌。(默認 false)

truefalse

androidDeviceReadyTimeout

等待設備在啓動應用後超時時間,單位秒

如 30

androidDeviceSocket

開發工具的 socket 名稱。Chromedriver 把它做爲開發者工具來進行鏈接。

如 chrome_devtools_remote

avd

須要啓動的 AVD (安卓模擬器設備) 名稱。

如 api19

avdLaunchTimeout

以毫秒爲單位,等待 AVD 啓動並鏈接到 ADB的超時時間。(默認值 120000)

300000

avdReadyTimeout

以毫秒爲單位,等待 AVD 完成啓動動畫的超時時間。(默認值 120000)

300000

avdArgs

啓動 AVD 時須要加入的額外的參數。

如 -netfast

useKeystore

使用一個自定義的 keystore 來對 apk 進行重簽名。默認值 false

true or false

keystorePath

自定義keystore路徑。默認~/.android/debug.keystore

如 /path/to.keystore

keystorePassword

自定義 keystore 的密碼。

如 foo

keyAlias

key 的別名

如 androiddebugkey

keyPassword

key 的密碼

如 foo

chromedriverExecutable

webdriver可執行文件的絕對路徑 應該用它代替Appium 自帶的 webdriver)

/abs/path/to/webdriver

autoWebviewTimeout

毫秒爲單位,Webview上下文激活的時間。默認2000

如 4

intentAction

用於啓動activity的intent action。(默認值 android.intent.action.MAIN)

如 android.intent.action.MAINandroid.intent.action.VIEW

intentCategory

用於啓動 activity 的 intent category。 (默認值 android.intent.category.LAUNCHER)

如 android.intent.category.LAUNCHERandroid.intent.category.APP_CONTACTS

intentFlags

用於啓動activity的標識(flags) (默認值 0x10200000)

如 0x10200000

optionalIntentArguments

用於啓動 activity 的額外 intent 參數。請查看 Intent 參數

如 --esn <EXTRA_KEY>--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>

dontStopAppOnReset

在使用 adb 啓動應用時不要中止被測應用的進程。默認值: false

true 或 false

unicodeKeyboard

使用 Unicode 輸入法。默認值 false

true 或 false

resetKeyboard

重置輸入法到原有狀態,默認值 false

true 或 false

noSign

跳過檢查和對應用進行 debug 簽名的步驟。默認值 false

true 或 false

ignoreUnimportantViews

調用 uiautomator 的函數這個關鍵字能加快測試執行的速度。默認值 false

true 或 false

disableAndroidWatchers

關閉 android 監測應用無響ANR和崩潰crash的監視器默認值: false

true 或者 false

chromeOptions

容許傳入 chrome driver 使用的 chromeOptions 參數。請查閱 chromeOptions 瞭解更多信息。

chromeOptions: {args: [‘--disable-popup-blocking‘]}

僅對IOS測試有效的設置:

關鍵字

描述

實例

calendarFormat

(Sim-only) 爲iOS的模擬器設置日曆格式

如 gregorian (公曆)

bundleId

被測應用的bundle ID,真機上執行測試時,你能夠不提供 app 關鍵字,但你必須提供udid

如 io.appium.TestApp

udid

鏈接真機的惟一設備編號 ( Unique device identifier )

如 1ae203187fc012g

launchTimeout

以毫秒爲單位,在Appium運行失敗以前設置一個等待 instruments的時間

好比: 20000

locationServicesEnabled

(Sim-only) 強制打開或關閉定位服務。默認值是保持當前模擬器的設定

true 或 false

locationServicesAuthorized

使用這個關鍵字時,你同時須要使用 bundleId 關鍵字來發送你的應用的 bundle ID。

true 或者 false

autoAcceptAlerts

當 iOS 的我的信息訪問警告 (如 位置、聯繫人、圖片) 出現時,自動選擇接受( Accept )。默認值 false

true 或者 false

autoDismissAlerts

當 iOS 的我的信息訪問警告 (如 位置、聯繫人、圖片) 出現時,自動選擇不接受( Dismiss )。默認值 false

true 或者 false

nativeInstrumentsLib

使用原生 intruments 庫 (即關閉 instruments-without-delay )

true 或者 false

nativeWebTap

(Sim-only) 在Safari中容許"真實的",默認值: false。注意:取決於 viewport 大小/比例, 點擊操做不必定能精確地點中對應的元素。

true 或者 false

safariInitialUrl

(Sim-only) (>= 8.1) Safari 的初始地址。默認值是一個本地的歡迎頁面

例如: https://www.github.com

safariAllowPopups

(Sim-only) 容許 javascript 在 Safari 中建立新窗口。默認保持模擬器當前設置。

true 或者 false

safariIgnoreFraudWarning

(Sim-only) 阻止 Safari 顯示此網站可能存在風險的警告。默認保持瀏覽器當前設置。

true 或者 false

safariOpenLinksInBackground

(Sim-only) Safari 是否容許連接在新窗口打開。默認保持瀏覽器當前設置。

true 或者 false

keepKeyChains

(Sim-only) 當 Appium 會話開始/結束時是否保留存放密碼存放記錄 (keychains) (庫(Library)/鑰匙串(Keychains))

true 或者 false

localizableStringsDir

從哪裏查找本地化字符串。默認值 en.lproj

en.lproj

processArguments

經過 instruments 傳遞到 AUT 的參數

如 -myflag

interKeyDelay

以毫秒爲單位,按下每個按鍵之間的延遲時間。

如 100

showIOSLog

是否在 Appium 的日誌中顯示設備的日誌。默認值 false

true 或者 false

sendKeyStrategy

輸入文字到文字框的策略。模擬器默認值:oneByOne (一個接着一個) 。真實設備默認值:grouped (分組輸入)

oneByOnegrouped 或 setValue

screenshotWaitTimeout

以秒爲單位,生成屏幕截圖的最長等待時間。默認值: 10。

如 5

waitForAppScript

用於判斷 "應用是否被啓動」 的 iOS 自動化腳本代碼。默認狀況下系統等待直到頁面內容非空。結果必須是布爾類型。

例如 true;target.elements().length > 0;$.delay(5000); true;

咱們開發主要使用的Capability包括platformName、platformVersion、appPackage、appActivity、unicodeKeyboard、 resetKeyboard和newCommandTimeout。這些Capability基本上已經知足了目前的測試需求。

相關文章
相關標籤/搜索