Files
appium/docs/cn/running-tests.cn.md
T
2014-04-27 20:06:53 -04:00

4.2 KiB

執行測試

測試前的準備 (iOS)

在模擬器上測試apps必須要用模擬器專用的編譯器,例如說使用下列的命令來編譯 Xcode 項目:

> xcodebuild -sdk iphonesimulator6.0

這行指令在Xcode項目底下創建了一個build/Release-iphonesimulator目錄,並且生成一個可以透過 Appium 服務器來交流的的.app封包。

如果需要,你可以把.app 目錄壓縮成一個zip壓縮檔!Appium 會自行解壓縮。讓你能方便在非本地運行Appium。

測試前的準備 (Android)

用Appium去執行你的.apk檔其實沒什麼特別需要注意的事項。如果需要,你可以把它壓縮成zip壓縮檔。

用Appium測試你的app (iOS)

目前最好的測試方式請參照測試範例:

Node.js | Python | PHP | Ruby | Java

基本上來說,首先先確定你啟動了Appium:

node . -V

然後執行你的WebDriver測試腳本,腳本必須包含下列的環境參數:

{
    device: 'iPhone Simulator',
    browserName: '',
    version: '6.1',
    app: myApp
}

在這個腳本集裡,myApp必須是下列其中之一:

  • 一個模擬器編譯過的 .app 目錄或著 .zip 檔的本地絕對路徑
  • 一個包含著你的.app封包的zip檔的url

在你選擇的WebDriver庫裡,設定remote session使用上述的環境參數然後使用端口 4723來連接本地服務器 (或著是使用你在Appium啟動時所設定的任意端口)。現在你已經設置完成了!

用Appium測試你的app (Android)

首先,先確定你有一個而且必須是只能一個Android模擬器或著設備連接著。如果你輸入adb devices,你應該只看到一個設備連接著。這將是Appium所用來測試的設備。當然,要連接一個設備,你需要準備好一個Android AVD (參考 系統設置 以了解更多). 如果Android SDK工具在你的路徑下,你可以簡單的執行:

emulator -avd <我的Avd名稱>

然後等android模擬器啟動。有時候,因為某些原因,adb會卡住。如果它沒有顯示任何的設備或其他故障,你可以使用下列指令來重啟:

adb kill-server && adb devices

現在,確認Appium已經啟動:

node .

然後執行你的WebDriver測試腳本,腳本必須包含下列的環境參數:

{
    device: 'Android',
    browserName: '',
    version: '4.2',
    app: myApp,
    'app-package': myAppPackage,
    'app-activity': myAppActivity
}

在這個腳本集裡,myApp必須是下列其中之一:

  • 一個 .apk 或著 .zip 檔的本地絕對路徑
  • 一個包含著你的.apk檔的zip壓縮檔的url

myAppPackage 必須是你的應用的java package,例如, com.example.android.myApp.

myAppActivity 必須是你的希望測試的Android activity, 例如, MainActivity.

在你選擇的WebDriver庫裡,設定remote session使用上述的環境參數然後使用端口 4723來連接本地服務器 (或著是使用你在Appium啟動時所設定的任意端口)。現在你已經設置完成了!

用Appium測試你的app (Android 設備 < 4.2, 以及混合app測試)

低於4.2版本的Android設備 (API Level 17) 沒有安裝Google 的用戶界面自動化框架/UiAutomator framework.下面的範例是早期Appium在這些設備上的測試方法。對於早期的設備以及使用混合模式(webview-based)製作的apps, Appium 包含了另一種自動化測試後端Selendroid.

要使用Selendroid, 只需要在之前提到的環境參數上稍作修改即可,把'Android' 換成 'Selendroid':

{
    device: 'Selendroid',
    browserName: '',
    version: '2.3',
    app: myApp,
    'app-package': myAppPackage,
    'app-activity': myAppActivity
}

這樣Appium就會使用 Selendroid 取代預設的測試會話。使用 Selendroid 的缺點是有時候它的API跟 Appium 非常不同。所以我們建議你在為你的舊設備或著混合app寫測試腳本之前先仔細的閱讀Selendroid 的說明文檔