移動 app 云測試平臺的對比與分析
我們都知道在測試移動app時最耗時的是在各種測試設備進行測試, 因為不論是安卓還是iOS都已經碎片化了。而云測試看似是解決這一問題的有效途徑。因此選擇哪種云測試平臺來協助測試人員進行各種測試就成為首要問題。
我們先來看看云測試平臺通常都提供哪些功能和服務。
主流的云測試平臺都支持對原生native,混合hybrid和Web app的測試,這些測試包括:
-
腳本測試
通過運行云測試平臺工具進行錄制的或者使用自動化測試框架編寫的自動化腳本,實現模擬用戶操作的目的,并且減少手動測試時間。
-
性能監控和分析
利用Android SDK提供的借口,云測試平臺可以檢測移動app的耗電量,CPU等資源占用率,使用的流量等信息。有些云測試平臺還提供自己的SDK,整合在app中可以提供更為準確的性能指標和信息,包括線上app的性能信息以及崩潰信息等。
-
手動測試和人工測試
云測試平臺的手動測試是指租用云測試平臺的特定設備,測試人員手動登錄設備進行測試。而人工測試則是將測試需求告知云測試平臺的專業測試人員,雇傭他們臨時作為自己的測試人員進行測試。
-
持續集成
不少提供腳本測試的云測試平臺都同時提供對持續集成(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/)
(點擊放大圖像)
圖1 - 國外主流的云測試平臺對比
從上圖我們可以看到一些特點:
- 在測試設備的數量上,Xamarin Test Cloud和Sauce Labs都是非常有優勢的,雖然Xamarin Test Cloud統計的是測試設備的數量,而Sauce Labs是平臺的數量;
- 亞馬遜自己的FireOS只被自己的云測試平臺支持,在國內我們也能看到類似的例子;
- 所有的云測試平臺都支持app測試,但是只有TestDroid支持游戲測試;
- 對于國內云測試平臺提供的人工測試,安全測試,內測分發和眾包測試,國外這些云測試平臺都是不支持的,需要結合別的工具和框架進行使用。不過對于手動測試,Sauce Labs和Perfecto這兩個云測試平臺支持租用測試設備進行手動測試;
- 對于云測試基礎功能的兼容測試,以及腳本測試,崩潰分析和持續集成,這些云測試平臺都是支持的;
- 只有Xamarin Test Cloud,TestDroid和AWS Device Farm支持性能監控;
- 對于腳本測試所使用的移動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。
- 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/)
(點擊放大圖像)
圖2 - 國內主流的云測試平臺對比
從上圖我們也可以看到一些特點:
- Testin云測支持的測試設備數量最多,達到了600部Android和70部iOS終端的數量;但是和Xamarin Test Cloud以及Sauce Labs支持的設備數量還是有不少差距的;
- 和亞馬遜類似,阿里的YunOS也只有阿里MQC才能支持;
- 和國外的云測試平臺很類似,這四個國內云測試平臺也都支持app的云測試,而不支持游戲測試;只有Testin云測支持游戲測試;
- 對于云測試基礎功能的兼容測試,國內主流云測試平臺都是支持的;
- 這四個國內云測試平臺也都支持崩潰分析,不過對于性能監控,卻只有百度MTC支持,而且百度MTC的深度性能測試中還可以做競品app的性能對比;
- Testin云測和百度MTC不支持手動測試;
- 只有阿里MQC不支持人工測試;
- 只有Testin云測不支持安全測試;對于支持安全測試的云測試平臺,也沒有公布是如何進行安全測試的;
- Testin云測支持內測分發和眾包測試,阿里MQC支持眾包測試,其它兩個云測試平臺對于內測分發和眾包測試都不支持;
- 對于腳本測試,只有騰訊優測不支持;而對于測試工具和框架,各個平臺的支持也不相同:
- Testin云測支持Robotium,JUnit,淘寶的Athrun和Testin SDK,其中只有Testin SDK支持iOS和Android,其他框架都只支持Android;
- 百度MTC只支持通過自己的測試腳本錄制工具錄制的腳本;
- 阿里MQC支持Robotium和增強后的appium,其中appium可以支持iOS和Android;
- Testin云測,百度MTC和阿里MQC都提供了自己的測試腳本錄制工具,分別是itestin錄制回放工具,百度MTC錄制回放工具和易測;
- 國內云測試平臺都沒有提及持續集成,不過從筆者的了解看來,Testin云測和阿里MQC應該是都支持的。
對于國內云測試平臺,如果需要覆蓋更多的測試設備或者需要測試游戲亦或需要內測分發,只能選擇Testin云測;如果需要測試YunOS設備,那就需要選擇阿里MQC;如果需要進行性能監控和競品對比,那就選擇百度MTC;如果要遠程連接測試設備進行手動測試,那就需要選擇騰訊優測和阿里MQC;如果需要雇傭云測試平臺的專業測試人員,就不能選擇阿里MQC;如果需要進行安全測試,就不能選擇Testin云測;如果需要進行眾包測試,那就選擇Testin云測和阿里MQC;如果要進行腳本測試,就不能選擇騰訊優測,對于百度MTC也不推薦。
相信通過對比這些云測試平臺提供的功能和服務,以及它們各自的特點,讀者在選用云測試平臺時有了更多的依據。希望大家在使用這些信息作為依據時,綜合考慮這些云測試平臺的特點,同時可以使用它們提供的免費試用進行嘗試,以便驗證是否真的適合自己的app。
P.S.以上云測試平臺提供的功能及服務,截止于2016年3月20日。
作者簡介
黃勇, ThoughtWorks 咨詢師。在10年的QA相關領域的工作中,積累了豐富的對企業級應用和大型產品應用的測試和管理經驗;近些年關注于移動app的測試和行業發展。合作組織和創辦了北京軟件質量大會BQConf,始終關注于新的技術和業界趨勢,不停汲取新的知識和實踐,同時熱衷于分享。著有《移動app測試的22條軍規》,在InfoQ曾發表過《 游戲化在保險項目中的實踐 》。
來自: http://www.infoq.com/cn/articles/comparison-and-analysis-of-mobile-app-cloud-test-platform