前言
隨著移動互聯網的發展,移動測試技術越來越成熟,很多優秀的開源測試框架涌現出來。作為一個移動測試工程師,我們不僅要夯實自己的技術能力,也要學會從開源框架吸取經驗。俗話說,站在巨人的肩膀上,我們會看得更遠。移動端的測試框架主要分為自動化測試框架,性能測試框架,穩定性測試框架和安全測試框架這幾種類型。下面我們分這幾個類型介紹10個最常用的移動端測試框架。
自動化測試框架
1)Appium
官方網站:http://appium.io/
Github下載地址:https://github.com/appium/appium
說到移動端的自動化框架,最有名的當屬Appium。Appium是一個開源的跨平臺移動端UI自動化測試框架,它支持native,hybrid和web app的測試。目前有超過100個貢獻者在github上維護和優化Appium的源代碼。關于Appium的中文資料也非常多,比較齊全的是乙醇的博客,總結了11篇博文介紹Appium的用法,可以訪問http://www.cnblogs.com/nbkhic/tag/appium/ 來查看。另外在testerhome上也有專門針對Appium的討論社區,在上面你可以跟各種行業大牛溝通和交流。https://testerhome.com/topics/node23
2) 百度Cafe
官方網站:http://baiduqa.github.io/Cafe/
Github下載地址:https://github.com/BaiduQA/Cafe
Cafe,是一款來自百度QA部門的Android平臺自動化測試框架,框架覆蓋了Android自動化測試的各種需求,致力于實現跨進程測試、快速測試、深度測試,解決了Android自動化測試中的諸多難題,比如業界一直沒有解決的跨進程測試問題。主要亮點有:基于hook錄制體系,遍歷測試,跨app測試,pc agent設計,使用android 漏洞提權。
3)阿里Athrun
Github下載地址:https://github.com/taobao-chenxu/athrun-framework
Athrun 無線測試框架是淘寶自動化測試團隊開發的UI自動化測試框架,支持Android和iOS移動App的UI自動化測試。Athrun以Mobile自動化為基礎,以PC2Mobile為切入點,是淘寶Mobile測試日常工作必備的平臺。目前Athrun支持:Android上的自動化測試,包括自動化測試框架,持續集成體系。覆蓋率工具和自動錄制回放工具,也在試用完善中。iOS上的自動化測試,包括注入式自動化框架AppFramework,和基于錄制的非注入式自動化框架Athrun_IOS,還有持續集成體系。目前兩個框架在淘寶測試內都有用戶群,都還在不斷使用和演進過程中。AppFramework將會支持socket通信方式。
性能測試框架
1)網易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端性能測試工具,它可以實時監控Android App的CPU,內存,網絡流量,電量等。如果手機Root的話,還可以監控top activity及堆信息。此外,它還能根據用戶需要設置收集數據的時間間隔。最終以csv文件的方式將報告保存在本地。
2)騰訊APT
Github下載地址:https://github.com/stormzhang/APT
Tencent APT Mirror, APT是一個Android平臺高效性能測試組件,提供豐富實用的功能,適用于開發自測、定位性能瓶頸;測試人員完成性能基準測試、競品對比測試。APT是一個eclipse插件,可以實時監控Android手機上多個應用的CPU、內存數據曲線,并保存數據;另外還支持自動獲取內存快照、PMAP文件分析等,方便開發人員自測或者測試人員完成性能測試,快速發現產品問題。
穩定性測試框架
1)CrashMonkey4IOS
Github下載地址:https://github.com/vigossjjj/CrashMonkey4IOS
CrashMonkey4IOS是一個iOS穩定性測試工具。它主要支持以下功能:
- 支持真機測試、模擬器測試;
- 支持收集系統日志(Systemlog)、崩潰日志(Crashlog)、instrument行為日志
- 支持測試報告截圖,繪制行為軌跡
- 支持測試設備信息收集
- 使用最新版的UIAutoMonkey,加入UI Holes與Application Not Repsonding ("ANR")的處理,添加custom.js作為入口腳本.加入tuneup依賴
- 修改UIAutoMonkey.js中截圖策略,為每個Event Action進行截圖
- 支持測試執行過程中App進入后臺,自動恢復
2)CrashMonkey4Android
Github下載地址:https://github.com/DoctorQ/CrashMonkey4Android
CrashMonkey4Android,是一個依靠Cts框架,對原生Monkey進行改造后的產物,擁有以下新增功能:
- 保存每一步的截圖.
- 保存logcat.
- 保存每一個Monkey事件的信息.
- 分析Crash.
- Html報告.
- 支持多設備.
3)ui-auto-monkey
Github下載地址:https://github.com/jonathanpenn/ui-auto-monkey
UI AutoMonkey是一個簡單的面向iOS應用程序的壓力測試插件框架。 你可以通過它向你的應用程序連續發出一系列隨機的點擊,滑動,旋轉屏幕,鎖屏,解鎖等事件。同時它會通過instrument對你的App的性能狀況進行實時監控。當應用程序發生crash,它會收集相關的crash日志并存儲在本地。
安全測試框架
1)Mobile-Security-Framework-MobSF
Github下載地址:https://github.com/penghaibo203/Mobile-Security-Framework-MobSF
Mobile Security Framework (移動安全框架) 是一款智能、一體化的開源移動應用(Android/iOS)自動滲透測試框架,它能進行靜態、動態的分析。
- 靜態分析器可以執行自動化的代碼審計、檢測不安全的權限請求和設置,還可以檢測不安全的代碼,諸如ssl繞過、弱加密、混淆代碼、硬編碼的密碼、危險API的不當使用、敏感信息/個人驗證信息泄露、不安全的文件存儲等。
- 動態分析器可以在虛擬機或者經過配置的設備上運行程序,在運行過程中檢測問題。動態分析器可以從抓取到的網絡數據包、解密的HTTPS流量、程序dump、程序日志、程序錯誤和崩潰報告、調試信息、堆棧軌跡和程序的設置文件、數據庫等方面進行進一步的分析。
該框架支持二進制文件(APK & IPA)和源碼壓縮包。該框架的另一個特點是其可擴展性,你可以輕松制定自定義規則。測試結束后程序會生成一份清晰的報告。我們會進一步拓展次框架以支持Tizen、WindowsPhone等平臺。
2)AndroBugs_Framework
官方網站:http://www.androbugs.com/
Github下載地址:https://github.com/jackcn2004/AndroBugs_Framework
AndroBugs框架是一款高效的Android漏洞掃描器,可以幫助開發人員或滲透測試人員在Android應用程序查找潛在的安全漏洞。它是基于Python語言開發的,無需安裝,配置相關環境即可使用。
總結
關于移動端App測試的開源框架當然遠不止這10種,感興趣的同學可以去我的Github上逛逛(地址:https://github.com/penghaibo203 )。另外,要提醒大家的是,開源框架也不是萬能的,我們的目的是搞懂它們的原理,根據自己的需要來改進和優化,不要做伸手黨。