前言
隨著移動互聯(lián)網(wǎng)的發(fā)展顿锰,移動測試技術(shù)越來越成熟谨垃,很多優(yōu)秀的開源測試框架涌現(xiàn)出來启搂。作為一個移動測試工程師,我們不僅要夯實自己的技術(shù)能力刘陶,也要學(xué)會從開源框架吸取經(jīng)驗胳赌。俗話說,站在巨人的肩膀上匙隔,我們會看得更遠疑苫。移動端的測試框架主要分為自動化測試框架,性能測試框架纷责,穩(wěn)定性測試框架和安全測試框架這幾種類型捍掺。下面我們分這幾個類型介紹10個最常用的移動端測試框架。
自動化測試框架
1)Appium
官方網(wǎng)站:http://appium.io/
Github下載地址:https://github.com/appium/appium
說到移動端的自動化框架再膳,最有名的當屬Appium挺勿。Appium是一個開源的跨平臺移動端UI自動化測試框架,它支持native喂柒,hybrid和web app的測試不瓶。目前有超過100個貢獻者在github上維護和優(yōu)化Appium的源代碼。關(guān)于Appium的中文資料也非常多灾杰,比較齊全的是乙醇的博客湃番,總結(jié)了11篇博文介紹Appium的用法,可以訪問http://www.cnblogs.com/nbkhic/tag/appium/ 來查看吭露。另外在testerhome上也有專門針對Appium的討論社區(qū),在上面你可以跟各種行業(yè)大牛溝通和交流尊惰。https://testerhome.com/topics/node23
2) 百度Cafe
官方網(wǎng)站:http://baiduqa.github.io/Cafe/
Github下載地址:https://github.com/BaiduQA/Cafe
Cafe讲竿,是一款來自百度QA部門的Android平臺自動化測試框架,框架覆蓋了Android自動化測試的各種需求弄屡,致力于實現(xiàn)跨進程測試题禀、快速測試、深度測試膀捷,解決了Android自動化測試中的諸多難題迈嘹,比如業(yè)界一直沒有解決的跨進程測試問題。主要亮點有:基于hook錄制體系全庸,遍歷測試秀仲,跨app測試,pc agent設(shè)計壶笼,使用android 漏洞提權(quán)神僵。
3)阿里Athrun
Github下載地址:https://github.com/taobao-chenxu/athrun-framework
Athrun 無線測試框架是淘寶自動化測試團隊開發(fā)的UI自動化測試框架,支持Android和iOS移動App的UI自動化測試覆劈。Athrun以Mobile自動化為基礎(chǔ)保礼,以PC2Mobile為切入點沛励,是淘寶Mobile測試日常工作必備的平臺。目前Athrun支持:Android上的自動化測試炮障,包括自動化測試框架目派,持續(xù)集成體系。覆蓋率工具和自動錄制回放工具胁赢,也在試用完善中企蹭。iOS上的自動化測試,包括注入式自動化框架AppFramework徘键,和基于錄制的非注入式自動化框架Athrun_IOS练对,還有持續(xù)集成體系。目前兩個框架在淘寶測試內(nèi)都有用戶群吹害,都還在不斷使用和演進過程中螟凭。AppFramework將會支持socket通信方式。
性能測試框架
1)網(wǎng)易Emmagee
Github下載地址:https://github.com/NetEase/Emmagee
Wiki: https://github.com/NetEase/Emmagee/wiki
Issues: https://github.com/NetEase/Emmagee/issues
FAQ: https://github.com/NetEase/Emmagee/wiki/FAQ
Emmagee是一個實用的手工Android端性能測試工具它呀,它可以實時監(jiān)控Android App的CPU螺男,內(nèi)存,網(wǎng)絡(luò)流量纵穿,電量等下隧。如果手機Root的話锄列,還可以監(jiān)控top activity及堆信息扎筒。此外丧鸯,它還能根據(jù)用戶需要設(shè)置收集數(shù)據(jù)的時間間隔鹃彻。最終以csv文件的方式將報告保存在本地摹恨。
2)騰訊APT
Github下載地址:https://github.com/stormzhang/APT
Tencent APT Mirror, APT是一個Android平臺高效性能測試組件豫喧,提供豐富實用的功能遭赂,適用于開發(fā)自測摘符、定位性能瓶頸抢野;測試人員完成性能基準測試拷淘、競品對比測試。APT是一個eclipse插件指孤,可以實時監(jiān)控Android手機上多個應(yīng)用的CPU启涯、內(nèi)存數(shù)據(jù)曲線,并保存數(shù)據(jù)恃轩;另外還支持自動獲取內(nèi)存快照结洼、PMAP文件分析等,方便開發(fā)人員自測或者測試人員完成性能測試详恼,快速發(fā)現(xiàn)產(chǎn)品問題补君。
穩(wěn)定性測試框架
1)CrashMonkey4IOS
Github下載地址:https://github.com/vigossjjj/CrashMonkey4IOS
CrashMonkey4IOS是一個iOS穩(wěn)定性測試工具。它主要支持以下功能:
- 支持真機測試昧互、模擬器測試挽铁;
- 支持收集系統(tǒng)日志(Systemlog)伟桅、崩潰日志(Crashlog)、instrument行為日志
- 支持測試報告截圖叽掘,繪制行為軌跡
- 支持測試設(shè)備信息收集
- 使用最新版的UIAutoMonkey楣铁,加入UI Holes與Application Not Repsonding ("ANR")的處理,添加custom.js作為入口腳本.加入tuneup依賴
- 修改UIAutoMonkey.js中截圖策略更扁,為每個Event Action進行截圖
- 支持測試執(zhí)行過程中App進入后臺盖腕,自動恢復(fù)
2)CrashMonkey4Android
Github下載地址:https://github.com/DoctorQ/CrashMonkey4Android
CrashMonkey4Android,是一個依靠Cts框架,對原生Monkey進行改造后的產(chǎn)物,擁有以下新增功能:
- 保存每一步的截圖.
- 保存logcat.
- 保存每一個Monkey事件的信息.
- 分析Crash.
- Html報告.
- 支持多設(shè)備.
3)ui-auto-monkey
Github下載地址:https://github.com/jonathanpenn/ui-auto-monkey
UI AutoMonkey是一個簡單的面向iOS應(yīng)用程序的壓力測試插件框架。 你可以通過它向你的應(yīng)用程序連續(xù)發(fā)出一系列隨機的點擊浓镜,滑動溃列,旋轉(zhuǎn)屏幕,鎖屏膛薛,解鎖等事件听隐。同時它會通過instrument對你的App的性能狀況進行實時監(jiān)控。當應(yīng)用程序發(fā)生crash哄啄,它會收集相關(guān)的crash日志并存儲在本地雅任。
安全測試框架
1)Mobile-Security-Framework-MobSF
Github下載地址:https://github.com/penghaibo203/Mobile-Security-Framework-MobSF
Mobile Security Framework (移動安全框架) 是一款智能、一體化的開源移動應(yīng)用(Android/iOS)自動滲透測試框架咨跌,它能進行靜態(tài)沪么、動態(tài)的分析。
- 靜態(tài)分析器可以執(zhí)行自動化的代碼審計锌半、檢測不安全的權(quán)限請求和設(shè)置禽车,還可以檢測不安全的代碼,諸如ssl繞過刊殉、弱加密哭当、混淆代碼、硬編碼的密碼冗澈、危險API的不當使用、敏感信息/個人驗證信息泄露陋葡、不安全的文件存儲等亚亲。
- 動態(tài)分析器可以在虛擬機或者經(jīng)過配置的設(shè)備上運行程序,在運行過程中檢測問題腐缤。動態(tài)分析器可以從抓取到的網(wǎng)絡(luò)數(shù)據(jù)包捌归、解密的HTTPS流量、程序dump岭粤、程序日志惜索、程序錯誤和崩潰報告、調(diào)試信息剃浇、堆棧軌跡和程序的設(shè)置文件巾兆、數(shù)據(jù)庫等方面進行進一步的分析猎物。
該框架支持二進制文件(APK & IPA)和源碼壓縮包。該框架的另一個特點是其可擴展性角塑,你可以輕松制定自定義規(guī)則蔫磨。測試結(jié)束后程序會生成一份清晰的報告。我們會進一步拓展次框架以支持Tizen圃伶、WindowsPhone等平臺堤如。
2)AndroBugs_Framework
官方網(wǎng)站:http://www.androbugs.com/
Github下載地址:https://github.com/jackcn2004/AndroBugs_Framework
AndroBugs框架是一款高效的Android漏洞掃描器,可以幫助開發(fā)人員或滲透測試人員在Android應(yīng)用程序查找潛在的安全漏洞窒朋。它是基于Python語言開發(fā)的搀罢,無需安裝,配置相關(guān)環(huán)境即可使用侥猩。
總結(jié)
關(guān)于移動端App測試的開源框架當然遠不止這10種榔至,感興趣的同學(xué)可以去我的Github上逛逛(地址:https://github.com/penghaibo203 )。另外拭宁,要提醒大家的是洛退,開源框架也不是萬能的,我們的目的是搞懂它們的原理杰标,根據(jù)自己的需要來改進和優(yōu)化兵怯,不要做伸手黨。