前言
最近,手頭上的專案基本開發完成,優化也做的差不多了,本以為可以安心準備上線。然而老闆卻反映說測試人員發現 App 總會出現一些莫名的 bug.
bug 來了,那就解決唄。但是這 bug 又賊迷,偶爾出來一個調戲一下你,就問你服不服。所以為了讓 App 中的 bug 儘可能的減少,只能暫時苦逼地轉行測試。這幾天花了不少時間和精力,好好研究了下 Android 平臺的自動化測試,在此總結一下,分享給大家。
一、概述
Android 平臺的自動化測試可以從兩個方向入手
- Android 端的自動化測試框架
各大雲測試平臺
- 騰訊優測雲測試平臺
- 華為開發者聯盟
- 貫眾雲測試
- Testin 雲測
測試的內容包括:
- 相容性測試:安裝、啟動、解除安裝
- 功能測試:手勢操作、功能驗證
- 穩定性測試:app 是否容易出現閃退等現象
- 場景測試:模擬真實網路場景,2G、3G、4G、wifi 網路的切換
上面介紹了 Android 自動化測試的兩個方向以及測試的具體內容,接下來談下他們之間的區別和優缺點。
Android 自動化測試框架
利用 Android 端的自動化測試框架,可以通過程式碼完成相應的測試用例,儘量覆蓋所有使用場景,讓人工的重複性操作,轉換成指令碼的自動化執行,解放程式猿寶貴的右手(嗯,也可能是左手)。emmmm,上面的優點是不是看起來很不錯。別急,還沒說缺點呢,缺點就是對測試人員來說編寫程式碼能力要求較高,而且由於要覆蓋大多數的使用場景,所以很考驗測試人員對於 App 的整體理解和把握,而且一般多用於 UI 測試,而無法進行相容性的測試,畢竟手機有限。各大雲測試平臺
利用雲測試平臺的好處還是很多的,畢竟人家是專業搞這個的,所以很多你沒考慮到的東西,別人都已經幫你整合到平臺裡面了。而且相對於 Android 自動化測試框架,各大雲測試平臺還能給你提供各種各樣的機型,例如華為開發者聯盟就提供了大部分華為和榮耀系列的手機,手機版本從 4.4 到 7.0 都有,看著這些優點是不是覺得美滋滋。缺點嘛,其實不多,就一個「收費」。這當然也能理解,畢竟人家也是要吃飯的,如果免費給你用,那還要不要人活了。
二、自動化測試框架
2.1 Espresso
Espresso 是 Google 針對 Android 平臺開源的一款 Android 自動化測試框架,主要是用於 Android App UI 自動化測試。
在這裡簡單說下 UI 自動化測試:我們作為 App 的使用者,要讓機器模擬我們的測試過程,那麼就需要針對我們肉眼看到的那些介面,那些按鈕,也就是 UI 元件進行相應的操作以及對結果正確性的驗證。
比如說,作為使用者我們並不關心某個網路請求返回值的具體資料是否正確,我們關心的是在介面上看到我們想要看到的結果。因此,做 UI 自動化測試用例的時候,一個通用的思路就是:找到某個元素,做一些操作,檢查結果,把自己當成使用者,只關注我能看到的東西。
Espresso 畢竟是 Google 自己出的,優點還是很多的
- 用 Java 來寫程式碼,對 Android 開發者很友好
- API 相當的小,當然也會對擴充開放的
- Espresso 的測試跑起來那是相當的快(沒有等待、睡眠)
- Gradle 和 Android Studio 的支援
更多 Espresso 的例子請戳:github.com/vgrec/Espre…
2.2 UI Automator
UI Automator 所執行的 JUnit 測試用例是有特殊許可權的,這意味著測試用例可以 跨越不同的程式,它提供了五種不同的類給開發人員使用:
com.android.uiautomator.core.UiCollection;
com.android.uiautomator.core.UiDevice;
com.android.uiautomator.core.UiObject;
com.android.uiautomator.core.UiScrollable;
com.android.uiautomator.core.UiSelector複製程式碼
不過,比較遺憾的是,UI Automator 只能工作在 API 16 或更高階別的 Android 裝置上,而且也沒有辦法直接訪問 Android 物件。
2.3 Appium
Appium 是一款「移動」的自動化測試框架,牛逼的地方在於支援 iOS 和 Android 原生和混生的移動 Web 應用程式。它內部使用的 JSONWireProtocol 通過 Selenium 的 WebDriver,來與 iOS 和 Android 應用進行互動。通過 UI Automator 和 Seledroid 支援 Android,通過 UI Automation 支援 iOS。上面這些話,看看就好了,反正我也看不懂。
Appium 最大的優點在於你幾乎可以用任意一種程式語言(例如,Java、Objective-C、JavaScript、PHP、Ruby)來編寫 Appium 指令碼而不必選擇工具,相容最重要的 pigtail(Android 和 iOS)而不必安裝和配置裝置適應測試等等。
三、雲測試平臺
3.1 騰訊優測雲測試平臺
擁有超過 1000 款測試終端,機型數量龐大,機子比較全。但僅支援 Android 系統,暫時不支援 iOS 系統。
不過,該平臺的收費還是蠻高的,一分鐘一塊錢,而且最低充值 100 元。
3.2 華為開發者聯盟
優點:免費
缺點:只能測試華為的機子
測試主要包括:
- 相容性測試:華為這邊提供所有華為手機的測試
穩定性測試
- 安裝、啟動、註冊登入、遍歷、解除安裝
- Crash、ANR、UI、功能異常
- 提供問題上下截圖及異常截圖
3.3 Testin
Testin 是國內較早涉足雲測試領域的公司之一。Testin 在雲端部署了 300 多款 1000 多部測試終端,終端種類及數量都比較全面。
該平臺也是收費的,具體的收費標準,並沒有在官網上顯示出來,只說了有需要服務的請聯絡客服。
猜你喜歡
- Android 擼起袖子,自己封裝 DialogFragment
- 手把手教你從零開始做一個好看的 APP
- Android 帶你擼一個好玩的 DoodleView(塗鴉)
- Android 一款十分簡潔、優雅的日記 APP