關(guān)于測試總結(jié)

一:移動端自動化測試框架對比

概述


1跌榔、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流舀武,如按鍵輸入、觸摸屏輸入离斩、手勢輸入等)银舱,實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試,也有日志輸出跛梗。實(shí)際上該工具只能做程序做一些壓力測試寻馏,由于測試事件和數(shù)據(jù)都是隨機(jī)的,不能自定義核偿,所以有很大的局限性诚欠。

2、MonkeyRunner也是Android SDK提供的測試工具。嚴(yán)格意義上來說MonkeyRunner其實(shí)是一個Api工具包轰绵,比Monkey強(qiáng)大粉寞,可以編寫測試腳本來自定義數(shù)據(jù)、事件左腔。缺點(diǎn)是腳本用Python來寫唧垦,對測試人員來說要求較高,有比較大的學(xué)習(xí)成本液样。

3振亮、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進(jìn)行測試鞭莽,但是Instrumentation允許你對應(yīng)用程序做更為復(fù)雜的測試坊秸,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下澎怒、抬起褒搔、屏幕點(diǎn)擊、滾動等事件喷面。Instrumentation是通過將主程序和測試程序運(yùn)行在同一個進(jìn)程來實(shí)現(xiàn)這些功能站超,你可以把Instrumentation看成一個類似Activity或者Service并且不帶界面的組件,在程序運(yùn)行期間監(jiān)控你的主程序乖酬。缺點(diǎn)是對測試人員來說編寫代碼能力要求較高,需要對Android相關(guān)知識有一定了解融求,還需要配置AndroidManifest.xml文件咬像,不能跨多個App。

4生宛、UiAutomator也是Android提供的自動化測試框架县昂,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實(shí)現(xiàn)細(xì)節(jié)(可以用UiAutomatorviewer抓去App頁面上的控件屬性而不看源碼)陷舅〉拐茫基于Java,測試代碼結(jié)構(gòu)簡單莱睁、編寫容易待讳、學(xué)習(xí)成本,一次編譯仰剿,所有設(shè)備或模擬器都能運(yùn)行測試创淡,能跨App(比如:很多App有選擇相冊、打開相機(jī)拍照南吮,這就是跨App測試)琳彩。缺點(diǎn)是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp露乏。

5碧浊、Espresso是Google的開源自動化測試框架。相對于Robotium和UIAutomator瘟仿,它的特點(diǎn)是規(guī)模更小箱锐、更簡潔,API更加精確猾骡,編寫測試代碼簡單瑞躺,容易快速上手。因?yàn)槭腔贗nstrumentation的兴想,所以不能跨App幢哨。配合Android Studio來編寫測試的簡單例子

6、Selendroid:也是基于Instrumentation的測試框架嫂便,可以測試Native App捞镰、Hybird App、Web App毙替,但是網(wǎng)上資料較少岸售,社區(qū)活躍度也不大。

7厂画、Robotium也是基于Instrumentation的測試框架凸丸,目前國內(nèi)外用的比較多,資料比較多袱院,社區(qū)也比較活躍屎慢。缺點(diǎn)是對測試人員來說要有一定的Java基礎(chǔ),了解Android基本組件忽洛,不能跨App腻惠。

8、Appium是最近比較熱門的框架欲虚,社區(qū)也很活躍集灌。這個框架應(yīng)該是是功能最強(qiáng)大的,

它的優(yōu)點(diǎn):

·開源复哆;

支持Native App欣喧、Hybird App、Web App寂恬;

支持Android续誉、iOS、Firefox OS初肉;

Server也是跨平臺的酷鸦,你可以使用Mac OS X、Windows或者Linux;

它的哲理是:

用Appium自動化測試不需要重新編譯App臼隔;

支持很多語言來編寫測試腳本嘹裂,Java、Javascript摔握、PHP寄狼、Python、C#氨淌、Ruby等主流語言泊愧;

不需要為了自動化測試來重造輪子,因?yàn)閿U(kuò)展了WebDriver盛正。(WebDriver是測試WebApps的一種簡單删咱、快速的自動化測試框架,所以有Web自動化測試經(jīng)驗(yàn)的測試人員可以直接上手)豪筝;

移動端自動化測試應(yīng)該是開源的痰滋;

它的設(shè)計(jì)理念:

Client/Server架構(gòu),運(yùn)行的時候Server端會監(jiān)聽Client端發(fā)過來的命令续崖,翻譯這些命令發(fā)送給移動設(shè)備或模擬器敲街,然后移動設(shè)備或模擬器做出響應(yīng)的反應(yīng)。正是因?yàn)檫@種架構(gòu)严望,所以Client可以使用Appium client libraries多種語言的測試腳本多艇,而且Server端完全可以部署在服務(wù)器上,甚至云服務(wù)器像吻。

Session墩蔓,每個Client連接到Server以后都會有一個Session ID,而且Client發(fā)送命令到Server端都需要這個Session ID萧豆,因?yàn)檫@個seesion id代表了你所打開的瀏覽器或者是移動設(shè)備的模擬器。所以你甚至可以打開N個Session昏名,同時測試不同的設(shè)備或模擬器涮雷。

Desired Capabilities,其實(shí)就是一個鍵值對轻局,設(shè)置一些測試的相關(guān)信息來告訴Server端洪鸭,我們需要測試iOS、還是Android仑扑,或者換是WebApp等信息览爵。

Appium Server是Node.js寫的,所以可以直接用NPM來進(jìn)行安裝镇饮。

Appium Clients蜓竹,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作俱济。

總結(jié):

在iOS部分是封裝了UIAutomation嘶是;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是Instrumentation蛛碌,也就說Appium同時封裝了UiAutomator和Instrumentation聂喇。所以Appium擁有了以上幾大框架的所有優(yōu)點(diǎn):跨App脚粟,支持Native App备绽、Hybird App、Web App琅锻,還支持N種語言來編寫你的測試腳本酝蜒。

二:國內(nèi)外主流云測試平臺對比

國外主流的云測試平臺:

·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 - 國外主流的云測試平臺對比

從上圖我們可以看到一些特點(diǎn):

1.在測試設(shè)備的數(shù)量上誊辉,Xamarin Test Cloud和Sauce Labs都是非常有優(yōu)勢的,雖然Xamarin Test Cloud統(tǒng)計(jì)的是測試設(shè)備的數(shù)量秕硝,而Sauce Labs是平臺的數(shù)量芥映;

2.亞馬遜自己的FireOS只被自己的云測試平臺支持,在國內(nèi)我們也能看到類似的例子远豺;

3.所有的云測試平臺都支持app測試奈偏,但是只有TestDroid支持游戲測試;

4.對于國內(nèi)云測試平臺提供的人工測試躯护,安全測試惊来,內(nèi)測分發(fā)和眾包測試,國外這些云測試平臺都是不支持的棺滞,需要結(jié)合別的工具和框架進(jìn)行使用裁蚁。不過對于手動測試,Sauce Labs和Perfecto這兩個云測試平臺支持租用測試設(shè)備進(jìn)行手動測試继准;

5.對于云測試基礎(chǔ)功能的兼容測試枉证,以及腳本測試,崩潰分析和持續(xù)集成移必,這些云測試平臺都是支持的室谚;

6.只有Xamarin Test Cloud,TestDroid和AWS Device Farm支持性能監(jiān)控崔泵;

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婆誓。

綜合來看吃环,對于國外的云測試平臺,如果側(cè)重的是測試設(shè)備的覆蓋程度洋幻,選擇Xamarin Test Cloud和Sauce Labs會更合適郁轻;如果需要測試FireOS設(shè)備,那就選擇AWS Device Farm文留;如果側(cè)重的是腳本測試中支持的語言和框架好唯,那就可以選擇TestDroid和AWS Device Farm;如果是進(jìn)行游戲測試燥翅,只能選擇TestDroid骑篙;如果要遠(yuǎn)程連接測試設(shè)備進(jìn)行手動測試,那就需要選擇Sauce Labs和Perfecto森书;如果在測試過程中需要同步監(jiān)測性能替蛉,就不能選擇Sauce Labs和Google Cloud Test Lab。

國內(nèi)主流的云測試平臺:

·Testin云測 (http://www.testin.cn/)

·百度MTC (http://mtc.baidu.com/)

·騰訊優(yōu)測(http://utest.qq.com/)

·阿里MQC (http://mqc.aliyun.com/)

·貫眾云測試(http://cloudtest.komect.com/)這里不做主要對比

·WeTest(http://wetest.qq.com/這里不做主要對比


圖2 - 國內(nèi)主流的云測試平臺對比

從上圖我們也可以看到一些特點(diǎn):

1.Testin云測支持的測試設(shè)備數(shù)量最多拄氯,達(dá)到了600部Android和70部iOS終端的數(shù)量;但是和Xamarin Test Cloud以及Sauce Labs支持的設(shè)備數(shù)量還是有不少差距的它浅;

2.和亞馬遜類似译柏,阿里的YunOS也只有阿里MQC才能支持;

3.和國外的云測試平臺很類似姐霍,這四個國內(nèi)云測試平臺也都支持app的云測試鄙麦,而不支持游戲測試典唇;只有Testin云測支持游戲測試;

4.對于云測試基礎(chǔ)功能的兼容測試胯府,國內(nèi)主流云測試平臺都是支持的介衔;

5.這四個國內(nèi)云測試平臺也都支持崩潰分析,不過對于性能監(jiān)控骂因,卻只有百度MTC支持炎咖,而且百度MTC的深度性能測試中還可以做競品app的性能對比;

6.Testin云測和百度MTC不支持手動測試寒波;

7.只有阿里MQC不支持人工測試乘盼;

8.只有Testin云測不支持安全測試;對于支持安全測試的云測試平臺俄烁,也沒有公布是如何進(jìn)行安全測試的绸栅;

9.Testin云測支持內(nèi)測分發(fā)和眾包測試,阿里MQC支持眾包測試页屠,其它兩個云測試平臺對于內(nèi)測分發(fā)和眾包測試都不支持粹胯;

10.對于腳本測試,只有騰訊優(yōu)測不支持辰企;而對于測試工具和框架风纠,各個平臺的支持也不相同:

·Testin云測支持Robotium,JUnit蟆豫,淘寶的Athrun和Testin SDK议忽,其中只有Testin SDK支持iOS和Android,其他框架都只支持Android十减;

·百度MTC只支持通過自己的測試腳本錄制工具錄制的腳本栈幸;

·阿里MQC支持Robotium和增強(qiáng)后的appium,其中appium可以支持iOS和Android帮辟;

11.Testin云測速址,百度MTC和阿里MQC都提供了自己的測試腳本錄制工具,分別是itestin錄制回放工具由驹,百度MTC錄制回放工具和易測芍锚;

12.國內(nèi)云測試平臺都沒有提及持續(xù)集成,不過從筆者的了解看來蔓榄,Testin云測和阿里MQC應(yīng)該是都支持的并炮。

對于國內(nèi)云測試平臺,如果需要覆蓋更多的測試設(shè)備或者需要測試游戲亦或需要內(nèi)測分發(fā)甥郑,只能選擇Testin云測逃魄;如果需要測試YunOS設(shè)備,那就需要選擇阿里MQC澜搅;如果需要進(jìn)行性能監(jiān)控和競品對比伍俘,那就選擇百度MTC邪锌;如果要遠(yuǎn)程連接測試設(shè)備進(jìn)行手動測試,那就需要選擇騰訊優(yōu)測和阿里MQC癌瘾;如果需要雇傭云測試平臺的專業(yè)測試人員觅丰,就不能選擇阿里MQC;如果需要進(jìn)行安全測試妨退,就不能選擇Testin云測妇萄;如果需要進(jìn)行眾包測試,那就選擇Testin云測和阿里MQC碧注;如果要進(jìn)行腳本測試嚣伐,就不能選擇騰訊優(yōu)測,對于百度MTC也不推薦萍丐。

三:系統(tǒng)轩端、開發(fā)工具及IDE自帶工具

1:AndroidMonitor(Memory monitor、Cpu monitor逝变、GPU monitor基茵、NetworkMonitor)(https://developer.android.com/studio/profile/android-monitor.html)

2:TraceView (https://developer.android.com/studio/profile/traceview.html)

3:Systrace(http://developer.android.com/tools/help/systrace.html)

4:HierarchyViewer(https://developer.android.com/studio/profile/hierarchy-viewer.html)

5:GL Tracer(http://developer.android.com/tools/help/gltracer.html)

6:Heap Viewer

(http://developer.android.com/tools/performance/heap-viewer/index.html)

7:Batterystats and Battery Historian(https://developer.android.com/studio/profile/battery-historian.html)

8:GPU Overdraw(http://developer.android.com/tools/performance/debug-gpu-overdraw/index.html)

四:其它

NimbleDroid(https://nimbledroid.com/)

Fixing Memory leaks

(http://riggaroo.co.za/fixing-memory-leaks-in-android-outofmemoryerror/)

Leakcanary(https://github.com/square/leakcanary)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市壳影,隨后出現(xiàn)的幾起案子拱层,更是在濱河造成了極大的恐慌,老刑警劉巖宴咧,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件根灯,死亡現(xiàn)場離奇詭異,居然都是意外死亡掺栅,警方通過查閱死者的電腦和手機(jī)烙肺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氧卧,“玉大人桃笙,你說我怎么就攤上這事∩尘” “怎么了搏明?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闪檬。 經(jīng)常有香客問我星著,道長,這世上最難降的妖魔是什么粗悯? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任虚循,我火速辦了婚禮,結(jié)果婚禮上为黎,老公的妹妹穿的比我還像新娘邮丰。我一直安慰自己,他們只是感情好铭乾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布剪廉。 她就那樣靜靜地躺著,像睡著了一般炕檩。 火紅的嫁衣襯著肌膚如雪斗蒋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天笛质,我揣著相機(jī)與錄音泉沾,去河邊找鬼。 笑死妇押,一個胖子當(dāng)著我的面吹牛跷究,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敲霍,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼俊马,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肩杈?” 一聲冷哼從身側(cè)響起柴我,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扩然,沒想到半個月后艘儒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夫偶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年界睁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片索守。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡晕窑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卵佛,到底是詐尸還是另有隱情杨赤,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布截汪,位于F島的核電站疾牲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏衙解。R本人自食惡果不足惜阳柔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚓峦。 院中可真熱鬧舌剂,春花似錦济锄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至避消,卻和暖如春低滩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岩喷。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工恕沫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纱意。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓婶溯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親妇穴。 傳聞我的和親對象是個殘疾皇子爬虱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 我們都知道在測試移動app時最耗時的是在各種測試設(shè)備進(jìn)行測試, 因?yàn)椴徽撌前沧窟€是iOS都已經(jīng)碎片化了腾它。而云測試看...
    櫻落e_e閱讀 5,412評論 0 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,855評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理跑筝,服務(wù)發(fā)現(xiàn),斷路器瞒滴,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 我有酒,你有故事嗎世剖? 請輸入圖片描述 朱旺生于上世紀(jì)60年代定罢,那時候三年災(zāi)害剛剛過去,村里條件不好旁瘫,每個人都餓的不...
    呂四火閱讀 1,005評論 0 0
  • 要睡覺了祖凫,小東西照常讓我講故事,我說講個什么呢酬凳,她望了下窗外說:“就講個關(guān)于月亮的惠况。”“為什么宁仔?”我反問稠屠,小家伙說...
    童心不改閱讀 283評論 0 1