1橄杨、Monkey (壓力測試)
Monkey是Android中的一個(gè)命令行工具宅此,它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入垒棋、觸摸屏輸入懂鸵、手勢輸入等)偏螺,實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。Monkey測試是一種測試軟件的穩(wěn)定性矾瑰、健壯性的快速有效的方法
Monkey特點(diǎn):
1砖茸、 測試的對象僅為應(yīng)用程序包,有一定的局限性殴穴。
2凉夯、 Monky測試使用的事件流數(shù)據(jù)流是隨機(jī)的货葬,不能進(jìn)行自定義。
3劲够、 可對MonkeyTest的對象震桶,事件數(shù)量,類型征绎,頻率等進(jìn)行設(shè)置蹲姐。
4、如果限定了Monkey運(yùn)行在一個(gè)或幾個(gè)特定的包上人柿,那么它會(huì)監(jiān)測試圖轉(zhuǎn)到其它包的操作柴墩,并對其進(jìn)行阻止。
5凫岖、如果應(yīng)用程序崩潰或接收到任何失控異常江咳,Monkey將停止并報(bào)錯(cuò)。
6哥放、如果應(yīng)用程序產(chǎn)生了應(yīng)用程序不響應(yīng)(application not responding)的錯(cuò)誤歼指,Monkey將會(huì)停止并報(bào)錯(cuò)。
優(yōu)點(diǎn):
1甥雕、? 操作簡單踩身,無需編程。
2社露、? 編寫批處理腳本就可以方便的對應(yīng)用程序進(jìn)行壓力測試挟阻。
缺點(diǎn):事件是隨機(jī)的不能自定義
2、Monkeyrunner(功能測試呵哨,用戶接受度測試赁濒,黑盒測試)
monkeyrunner 是Android提供的工具可以幫助我們實(shí)現(xiàn)自動(dòng)測試渗钉,它提供了一組 API 可以用來控制 Android 設(shè)備或模擬器川无』耷剑基于monkeyrunner提供的API編寫 Python 程序來安裝、運(yùn)行 Android 應(yīng)用或是測試包挨务,發(fā)送按鍵、滑屏等消息玉组,并可以截屏谎柄,然后保存在計(jì)算機(jī)中。monkeyrunner 主要目的是用來在應(yīng)用程序或框架層次上測試應(yīng)用程序或運(yùn)行單元測試包惯雳。monkeyrunner工具是在工作站上通過API定義的特定命令和事件控制設(shè)備或模擬器朝巫。
Monkeyrunner特點(diǎn):
1、MonkeyRunner則可以通過api編寫python腳本來產(chǎn)生特定命令和事件來控制設(shè)備和模擬器石景。
2劈猿、通過截屏對比是否是正常的運(yùn)行拙吉。
3、多設(shè)備控制:monkeyrunnerAPI可以跨多個(gè)設(shè)備或模擬器實(shí)施測試套件揪荣】昵可以在同一時(shí)間接上所有的設(shè)備或一次啟動(dòng)全部模擬器(或統(tǒng)統(tǒng)一起),依據(jù)程序依次連接到每一個(gè)仗颈,然后運(yùn)行一個(gè)或多個(gè)測試佛舱。也可以用程序啟動(dòng)一個(gè)配置好的模擬器,運(yùn)行一個(gè)或多個(gè)測試挨决,然后關(guān)閉模擬器请祖。
4、 功能測試: monkeyrunner可以為一個(gè)應(yīng)用自動(dòng)貫徹一次功能測試脖祈。測試者提供按鍵或觸摸事件的輸入數(shù)值损拢,然后觀察輸出結(jié)果的截屏。
5撒犀、 回歸測試:monkeyrunner可以運(yùn)行某個(gè)應(yīng)用福压,并將其結(jié)果截屏與既定已知正確的結(jié)果截屏相比較,以此測試應(yīng)用的穩(wěn)定性或舞。
優(yōu)點(diǎn):
1荆姆、? 編程語法相對簡單
2、? 可以跨應(yīng)用映凳,比如打開某個(gè)應(yīng)用是又開相機(jī)胆筒,然后再返回該應(yīng)用
缺點(diǎn):
運(yùn)行速度慢,容易出錯(cuò)诈豌,可用的接口少
wrapEasyMonkey是一個(gè)非常強(qiáng)大的monkeyrunner的第三方庫仆救,是基于EasyMonkeyDevice來二次封裝的,并加入了自動(dòng)異常處理矫渔、失敗重試彤蔽、case管理、斷言庙洼、獲取控件上的文本等顿痪,大大增強(qiáng)了monkeyrunner本來的功能,使得monkeyrunner強(qiáng)大了不止一個(gè)級別
關(guān)于monkey和monkeyrunner的用法在可以參考Android初體驗(yàn)之Monkey和MonkeyRunner
3油够、Robotium(功能測試蚁袭,用戶接受度測試,黑盒+白盒測試)
robotium是一款國外的Android自動(dòng)化測試框架石咬,主要針對Android平臺(tái)的應(yīng)用進(jìn)行黑盒自動(dòng)化測試揩悄,它提供了模擬各種手勢操作(點(diǎn)擊、長按鬼悠、滑動(dòng)等)删性、查找和斷言機(jī)制的API亏娜,能夠?qū)Ω鞣N控件進(jìn)行操作。
robotium特點(diǎn):
1镇匀、? 需要Java語言編寫測試程序
2照藻、? Robotium的測試代碼本質(zhì)是一個(gè)APK
優(yōu)點(diǎn):
1、采用Robotium編寫的測試程序汗侵,執(zhí)行速度快
2幸缕、可以對源碼測試,也可以測試apk
3晰韵、可以測試Android Native和Android HybridApp
4发乔、可以測試網(wǎng)絡(luò)鏈接和聲音等
5、Open Source
6雪猪、社區(qū)較活躍栏尚,資料比較好找
缺點(diǎn):
1、? apk需要重新簽名
2只恨、? 跨應(yīng)用操作搞不定译仗。
3、? 不支持webwiew官觅。
4纵菌、? 需要測試人員掌握J(rèn)ava語言
關(guān)于robotium的使用可以參考Robotium自動(dòng)化測試框架實(shí)用教程(圖)
4、Appium(UI測試休涤,黑盒測試)
Appium是一個(gè)開源的自動(dòng)化測試工具咱圆,只是測試UI邏輯正確性,其支持iOS和Android平臺(tái)上的原生應(yīng)用功氨,基于移動(dòng)瀏覽器的應(yīng)用序苏,混合應(yīng)用。
?? 原生應(yīng)用:僅使用iOS和安卓標(biāo)準(zhǔn)SDK編寫的應(yīng)用
?? 基于移動(dòng)瀏覽器的應(yīng)用:用移動(dòng)平臺(tái)的瀏覽器訪問的應(yīng)用(Appium支持IOS上的Safari和安卓上的Chrome或內(nèi)嵌的“瀏覽器”應(yīng)用)
?? 混合應(yīng)用:把基于一個(gè)WebView實(shí)現(xiàn)的所有功能包裝成一個(gè)應(yīng)用的應(yīng)用捷凄,WebView是一個(gè)可以和網(wǎng)頁各種元素交互的原生控件(譯者注:因?yàn)樗械囊苿?dòng)平臺(tái)都會(huì)有瀏覽器忱详,所以基于瀏覽器封裝起來的應(yīng)用就可以輕易做到跨平臺(tái)了)。Phonegap這些項(xiàng)目可以很方便的把那些基于web技術(shù)實(shí)現(xiàn)的功能打封裝成一個(gè)混合應(yīng)用纵势。
特點(diǎn):
1踱阿、Appium采用Client-Server的架構(gòu)設(shè)計(jì),并采用標(biāo)準(zhǔn)的HTTP通信協(xié)議钦铁;Server端創(chuàng)建并管理多個(gè)WeDriver session與iOS/Android原生測試框架交互,無需測試人員關(guān)注細(xì)節(jié)實(shí)現(xiàn)才漆;Client端基本上可以采用任意主流編程語言編寫測試用例牛曹。
2、支持Android4.2以上版本醇滥,基于UiAutomator架構(gòu)黎比。
3超营、基于webdriver標(biāo)準(zhǔn)協(xié)議
優(yōu)點(diǎn):
1、支持很多語言來編寫測試腳本阅虫,Java演闭、Javascript、PHP颓帝、Python米碰、C#、Ruby等主流語言购城。
2吕座、? 可以跨平臺(tái),測試代碼在iOS和Android平臺(tái)上可以實(shí)現(xiàn)代碼復(fù)用
3瘪板、? 無需對被測應(yīng)用做任何修改吴趴,也無需嵌入任何東西(SDK)
4、? Appium是開源的
5侮攀、? 社區(qū)活躍锣枝,文檔豐富
缺點(diǎn):
1、? 文本框輸入速度慢兰英,且不支持中文輸入
2撇叁、? 僅僅支持UI測試,不支持單元測試等
3箭昵、? 不支持跨應(yīng)用測試
Appium官網(wǎng):https://discuss.appium.io/
Appium中文文檔:https://testerhome.com/
Appium 社區(qū):https://testerhome.com/topics/node23
Appium簡明教程:http://www.cnblogs.com/nbkhic/tag/appium/
5税朴、MonkeyTalk(白盒測試,功能測試)
MonkeyTalk與Appium都屬于開源項(xiàng)目家制,都支持跨平臺(tái)iOS正林、Android
MonkeyTalk特點(diǎn):需要在源碼代碼中打樁
優(yōu)點(diǎn):
1、 支持腳本錄制
2颤殴、 執(zhí)行速度快
缺點(diǎn):
1觅廓、 需要在源碼代碼中打樁,要求對源碼非常熟悉涵但。
2杈绸、 中文資料較少