Appium Running-Test 翻譯

forkjoin · 2014年02月10日 · 最后由 forkjoin 回复于 2014年02月11日 · 2039 次阅读
本帖已被设为精华帖!

第一次翻譯文檔 在發佈前先請大家瀏覽過,看有沒有什麼問題

歡迎大家批評指教

執行測試

測試前的準備 (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 的說明文檔

共收到 3 条回复 时间 点赞

很不错啊,@seveniruby 这个可以 merge 了。

#1 楼 @lihuazhang @forkjoin 我已经合并进去了 等周末发起 appium 的 pull request

好的, 有空我繼續翻譯剩下的部分

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册