移動 App 雲測試平臺的對比與分析

ThoughtWorks發表於2016-06-06

文章作者/配圖來自ThoughtWorks:黃勇,未經允許,謝絕轉載。

我們都知道在測試移動app時最耗時的是在各種測試裝置進行測試, 因為不論是安卓還是iOS都已經碎片化了。而云測試看似是解決這一問題的有效途徑。因此選擇哪種雲測試平臺來協助測試人員進行各種測試就成為首要問題。

我們先來看看雲測試平臺通常都提供哪些功能和服務。

主流的雲測試平臺都支援對原生native,混合hybrid和Web app的測試,這些測試包括:

  1. 相容測試。通過在多種測試裝置上安裝/解除安裝和執行被測app,遍歷app的每個介面,主要檢查app是否會報錯或者崩潰。有些雲測試平臺還會對每個頁面進行截圖並進行對比。
  2. 指令碼測試通過執行雲測試平臺工具進行錄製的或者使用自動化測試框架編寫的自動化指令碼,實現模擬使用者操作的目的,並且減少手動測試時間。
  3. 效能監控和分析利用Android SDK提供的藉口,雲測試平臺可以檢測移動app的耗電量,CPU等資源佔用率,使用的流量等資訊。有些雲測試平臺還提供自己的SDK,整合在app中可以提供更為準確的效能指標和資訊,包括線上app的效能資訊以及崩潰資訊等。
  4. 手動測試和人工測試雲測試平臺的手動測試是指租用雲測試平臺的特定裝置,測試人員手動登入裝置進行測試。而人工測試則是將測試需求告知雲測試平臺的專業測試人員,僱傭他們臨時作為自己的測試人員進行測試。
  5. 持續整合不少提供指令碼測試的雲測試平臺都同時提供對持續整合(Continuous Integration)環境的支援。

此外不少國內雲測試平臺還提供以下功能:

  • 安全測試
  • 內測託管分發
  • 眾包測試

我們再來看看各種雲測試平臺對於上述功能和服務的支援情況。

由於國內外的雲測試平臺使用環境等因素的不同,我們分別對國內外主流的幾個雲測試平臺進行對比。

國外主流的雲測試平臺:
  • Xamarin Test Cloud (https://xamarin.com/test-cloud/)
  • TestDroid (http://testdroid.com/)
  • Sauce Labs (https://saucelabs.com/mobile/)
  • Google Cloud Test Cloud (https://developers.google.com/cloud-test-lab/)
  • AWS Device Farm (https://aws.amazon.com/device-farm/)

TestCloud-Foreign圖1 - 國外主流的雲測試平臺對比

從上圖我們可以看到一些特點:

  1. 在測試裝置的數量上,Xamarin Test Cloud和Sauce Labs都是非常有優勢的,雖然Xamarin Test Cloud統計的是測試裝置的數量,而Sauce Labs是平臺的數量;
  2. 亞馬遜自己的FireOS只被自己的雲測試平臺支援,在國內我們也能看到類似的例子;
  3. 所有的雲測試平臺都支援app測試,但是隻有TestDroid支援遊戲測試;
  4. 對於國內雲測試平臺提供的人工測試,安全測試,內測分發和眾包測試,國外這些雲測試平臺都是不支援的,需要結合別的工具和框架進行使用。不過對於手動測試,Sauce Labs和Perfecto這兩個雲測試平臺支援租用測試裝置進行手動測試;
  5. 對於雲測試基礎功能的相容測試,以及指令碼測試,崩潰分析和持續整合,這些雲測試平臺都是支援的;
  6. 只有Xamarin Test Cloud,TestDroid和AWS Device Farm支援效能監控;
  7. 對於指令碼測試所使用的移動app自動化測試框架,每個平臺都不甚相同:
    • Xamarin Test Cloud支援Calabash(iOS和Android)和自己的Xamarin.UITest;
    • TestDroid支援很多框架,包括支援iOS的Calabash,appium,UI Automation和 Jasmine,以及支援Android的Calabash,appium,Espresso,Robotium和uiautomator;
    • Sauce Labs支援自己的開源框架appium;
    • Google Cloud Test Lab則支援Espresso,Robotium和Robo test;
    • AWS Device Farm也支援很多框架,包括支援iOS的Calabash,appium,UIAutomation和XCTest,以及支援Android的Calabash,appium,JUnit,Espresso,Robotium和uiautomator。
  8. Xamarin Test Cloud,TestDroid和Sauce Labs都有自己的移動app測試指令碼錄製工具,分別是:Xamarin Test Recorder,TestDroid Recorder和appium inspector。

綜合來看,對於國外的雲測試平臺,如果側重的是測試裝置的覆蓋程度,選擇Xamarin Test Cloud和Sauce Labs會更合適;如果需要測試FireOS裝置,那就選擇AWS Device Farm;如果側重的是指令碼測試中支援的語言和框架,那就可以選擇TestDroid和AWS Device Farm;如果是進行遊戲測試,只能選擇TestDroid;如果要遠端連線測試裝置進行手動測試,那就需要選擇Sauce Labs和Perfecto;如果在測試過程中需要同步監測效能,就不能選擇Sauce Labs和Google Cloud Test Lab。

國內主流的雲測試平臺:
  • Testin雲測 (http://www.testin.cn/)
  • 百度MTC (http://mtc.baidu.com/)
  • 騰訊優測 (http://utest.qq.com/)
  • 阿里MQC (http://mqc.aliyun.com/)

TestCloud-Domastic圖2 - 國內主流的雲測試平臺對比

從上圖我們也可以看到一些特點:

  1. Testin雲測支援的測試裝置數量最多,達到了600部Android和70部iOS終端的數量;但是和Xamarin Test Cloud以及Sauce Labs支援的裝置數量還是有不少差距的;
  2. 和亞馬遜類似,阿里的YunOS也只有阿里MQC才能支援;
  3. 和國外的雲測試平臺很類似,這四個國內雲測試平臺也都支援app的雲測試,而不支援遊戲測試;只有Testin雲測支援遊戲測試;
  4. 對於雲測試基礎功能的相容測試,國內主流雲測試平臺都是支援的;
  5. 這四個國內雲測試平臺也都支援崩潰分析,不過對於效能監控,卻只有百度MTC支援,而且百度MTC的深度效能測試中還可以做競品app的效能對比;
  6. Testin雲測和百度MTC不支援手動測試;
  7. 只有阿里MQC不支援人工測試;
  8. 只有Testin雲測不支援安全測試;對於支援安全測試的雲測試平臺,也沒有公佈是如何進行安全測試的;
  9. Testin雲測支援內測分發和眾包測試,阿里MQC支援眾包測試,其它兩個雲測試平臺對於內測分發和眾包測試都不支援;
  10. 對於指令碼測試,只有騰訊優測不支援;而對於測試工具和框架,各個平臺的支援也不相同:
    • Testin雲測支援Robotium,JUnit,淘寶的Athrun和Testin SDK,其中只有Testin SDK支援iOS和Android,其他框架都只支援Android;
    • 百度MTC只支援通過自己的測試指令碼錄製工具錄製的指令碼;
    • 阿里MQC支援Robotium和增強後的appium,其中appium可以支援iOS和Android;
  11. Testin雲測,百度MTC和阿里MQC都提供了自己的測試指令碼錄製工具,分別是itestin錄製回放工具,百度MTC錄製回放工具和易測;
  12. 國內雲測試平臺都沒有提及持續整合,不過從筆者的瞭解看來,Testin雲測和阿里MQC應該是都支援的。

對於國內雲測試平臺,如果需要覆蓋更多的測試裝置或者需要測試遊戲亦或需要內測分發,只能選擇Testin雲測;如果需要測試YunOS裝置,那就需要選擇阿里MQC;如果需要進行效能監控和競品對比,那就選擇百度MTC;如果要遠端連線測試裝置進行手動測試,那就需要選擇騰訊優測和阿里MQC;如果需要僱傭雲測試平臺的專業測試人員,就不能選擇阿里MQC;如果需要進行安全測試,就不能選擇Testin雲測;如果需要進行眾包測試,那就選擇Testin雲測和阿里MQC;如果要進行指令碼測試,就不能選擇騰訊優測,對於百度MTC也不推薦。

相信通過對比這些雲測試平臺提供的功能和服務,以及它們各自的特點,讀者在選用雲測試平臺時有了更多的依據。希望大家在使用這些資訊作為依據時,綜合考慮這些雲測試平臺的特點,同時可以使用它們提供的免費試用進行嘗試,以便驗證是否真的適合自己的app。

P.S.以上雲測試平臺提供的功能及服務,截止於2016年3月20日。

相關文章