1. APP測試的準備
在進行APP測試之前,需要準備下列步驟。通過以下網站可以查找。
移動觀象臺:http://mi.talkingdata.com/terminals.html
1 確定APP的設備
選定被測試的設備終端。
- 記錄設備的品牌
- 記錄設備的型號
- 記錄設備的屏幕分辨率
- 記錄設備的屏幕大小
1.2 確定APP的版本
確定被測試的APP的版本號和操作系統類型
- XXX 1.3.2 for ios
- XXX 1.3.0 for Android
1.3 確定操作系統
確定運行被測試設備的操作系統
- 主流的有iOS和Android
- 還有WP(Windows Phone)
- BlackBerry
- Symbian
- Ubuntu
1.4 準備表格記錄APP的設備和版本
測試工作開始前,需要確定App需要測試的操作系統版本和設備列表
編號 | OS | OS Version | 分類 | Model | 製造商 | 屏幕尺寸 | 分辨率 |
---|---|---|---|---|---|---|---|
001 | iOS | 7.1 | iPhone | 5s | Apple | 4 | |
002 | iOS | 8.1 | iPhone | 6s | Apple | 4.7 | |
003 | iOS | 8.0.2 | iPhone | 6 | Apple | 4.7 | |
004 | iOS | 8.1.2 | iPhone | 6 Plus | Apple | 5.5 | |
005 | iOS | 8.0.2 | iPad | Air 2 | Apple | 9.7 | |
006 | iOS | 8.1.2 | iTouch | 5 | Apple | 4 | |
007 | Android | 5.1 | Phone | One XL | HTC | 4.7 | 1280*720 |
008 | Android | 4.5 | Phone | PRO 5 | Meizu | 5.7 | 1920*1080 |
009 | Android | 4.2 | Phone | Galaxy S6 | Samsung | ||
010 | Android | 4.4.2 | Phone | Galaxy S5 | Samsung | ||
011 | Android | 4.4.2 | Phone | MX 4 | Meizu | ||
012 | Android | 4.4.4 | Phone | Nexus 5 | |||
013 | Android | 4.4.4 | Phone | Mi 4 | Xiaomi | ||
014 | Android | 4.2.2 | Tablet | Galaxy Tab3 | Samsung |
2. APP的基本測試
2.1 “移動”測試App
由於現在3G和4G網絡都已經非常普及,需要優先測試App在這兩種網絡環境下的表現。同時需要測試4G信號無法覆蓋的時候,App切換到3G、2G的環境下進行測試甚至到無網絡的環境下測試。當網絡恢復的時候,App是否會自動切換回來,並且執行網絡斷開前用戶的操作。
一般可以選擇在地鐵、公交、電梯、隧道燈代表性的場所進行測試。
- 網絡切換
- 網絡恢復
一般可以選擇在地鐵、公交、電梯、隧道燈代表性的場所進行測試。
測試APP在網絡異常的情況下,是否發生 ANR
和 Crash
2.2 App的多任務和意外情況處理
-
多任務切換和多任務管理界面是否與App保持一致。
-
多任務管理界面直接退出App程序測試。
-
測試App的同時接聽電話,是否還能夠繼續使用App。
步驟:
- 正常打開被測APP
- 運行APP的功能
- 突然被其他應用打斷(意外,短信、電話、通知)
- 切換到該應用、或者、忽略該應用
- 被測APP能夠繼續之前的操作,不發生
ANR
或者Crash
2.3 測試App的手勢操作
- 長按屏幕呼出菜單
- 單手指從右向左滑動,彈出附加功能項
- 雙手指捏合,放大放小操作等
2.4 測試App的用戶體驗
- 橫屏功能測試
- 遵循iOS和Android的設計規範
- 字體大小設置以及美觀
2.5 測試App的消息顯示和通知顯示*
通知顯示的方式:
- 鎖屏的通知:內容
- 下拉通知欄的通知:內容
- 應用程序消息欄:內容
- 圖標的右上角角標:條數
測試要點
- 在安裝App的時候是否申請相應的權限
- 驗證收到App新的消息的時候,如何通過通知向用戶進行消息展示
2.6 測試App能否及時顯示和同步數據
Web端 + PC端 + APP端
- 測試在多臺設備登錄App,是否同步消息、設置、內容、數據等
- 測試App的消息是否同步在PC端(無論Web版本或者PC版本)
2.7 測試App能否響應不同的設備用戶界面
測試App是否適應用戶界面,必須使用真實設備進行測試。比如測試HTC Sense用戶界面底部的黑色導航欄,測試小米MIUI系統桌面的角標提醒功能,測試iOS的角標提醒,測試魅族Flyme的SmartBar操作等。
- 非常規的控制:SmartBar
- 非常規的分辨率:魅族 MX4 MX3 MX2……
2.8 測試App中高內存使用的功能
-
測試App對於讀取大量圖片、視頻等進行高內存佔用操作的處理能力
-
查看App是否有對應的異步加載功能等
主要測試場景:
- 檢查APP是否讀入全部圖片到內存中
- 美圖秀秀打開圖片
- 讀取一屏的圖片到內存
- 滾動屏幕,加載新的圖片到內存
- 測試APP是否設定了圖片加載的閥值:比如300MB
- 圖片在內存中加載到閥值(300MB),會自動把最開始加載的指定圖片佔的內存空間釋放
2.9 測試App的流量和電量消耗
- 測試App的安裝文件大小
- 測試App佔用的存儲空間
- 測試App使用的流量和電量
- 流量靠軟件測試
- 電量測試靠功耗儀
2.10 測試App的增量升級
- 需要測試App在自動升級或者手動增量升級後,用戶數據是否保存延續等
- 測試App在升級失敗以後,是否可以繼續使用升級之前的版本。
- 重點測試升級後數據是否可用
2.11 測試App支持的文件格式
- 測試App支持Office文件操作
- 測試App支持圖片文件展示
- 測試App支持PDF文件打開
- 測試App支持視頻和音頻文件播放
2.12 安裝卸載測試
- 不聯網的情況下,會不會崩潰
- 在線下載數據不完整,能否再次啓動
- 是否支持斷點續傳
- 下載安裝後再次啓動
- 安裝成功後檢查版本號和相關數據
2.13 應用召喚
-
不同應用之間的應用召喚
測試步驟:
【支付寶支付】
- 打開被測試的應用程序APP
- 使用APP指定的功能
- APP支付選擇“支付寶”
- 測試是否提示“允許打開支付寶”(iOS測試)
- 測試支付寶沒有安裝的情況下,APP是否有正確提示(未安裝支付寶)
- 測試支付寶正確安裝的情況下,未登錄支付寶,是否提示登錄頁面
- 測試支付寶正確安裝的情況下,已登錄支付寶,是否提示支付頁面
3. 易測EasyTest
易測是一款基於無線客戶端研發場景的通用測試工具, 它通過在研發人員的自持機上提供各種輔助能力&標準化的專項測試服務來提升研發質量&效率。
易測:http://mqc.aliyun.com/download.htm?spm=0.0.0.0.LKnIoR
- 實時性能數據
- 弱網環境模擬
- 手機抓包
- Monkey測試
- 截圖斷網等
4. ADB命令與Monkey工具
4.1 ADB 命令
adb:
adb 的全稱爲Android Debug Bridge,就是起到調試橋的作用。通過adb我們可以在Eclipse中方面通過DDMS來調試Android程序,說白了就是debug工具。adb的工作方式比較特殊,採用監聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認情況下adb會daemon相關的網絡端口,所以當我們運行Eclipse或Android Studio時adb進程就會自動運行。
藉助adb工具,我們可以管理設備或手機模擬器的狀態。還可以進行很多手機操作,如安裝軟件、系統升級、運行shell命令等等。其實簡而言說,adb就是連接Android手機與PC端的橋樑,可以讓用戶在電腦上對手機進行全面的操作
adb 在sdk的platform-tools目錄中
Android SDK 下載網站 http://www.androiddevtools.cn/(非官方)
ADB 是連接 Windows 命令行(也可以是Linux或者Mac)到 Andriod手機(模擬器)的Android操作系統的 橋樑(調試橋)
ADB的測試環境搭建:
- 安裝 JDK
- 安裝 Android SDK Tool
- 安裝 Android SDK 相關手機驅動
然後打開 Windows 命令窗口
cd C:\Users\Linty\AppData\Local\Android\android-sdk\platform-tools
ADB連接夜神模擬器示例:
ADB環境的搭建步驟(連接夜神模擬器):
-
打開Android模擬器(夜神模擬器)
也可以打開Android手機(已經ROOT),在勾選“允許USB調試”的選項後,連接手機 -
解壓縮 platform-tools_r22-windows.zip 到 C:\
-
打開 cmd
-
進入解壓後的文件夾
cd C:\platform-tools_r22-windows\platform-tools
-
連接夜神模擬器
adb connect 127.0.0.1:62001
連接成功後,提示 connected to 127.0.0.1:62001
-
進入 ADB Shell 模式
adb shell
成功後,進入ADB 的SHELL模式
root@android:/ #
ADB的兩種模式:
- 前提:必須連接上 Android,
adb connect
- 模式一:進入 ADB SHELL 模式
adb shell
- 類似於 Linux系統的操作
- ls
- cp
- cd
- mv
- rm
- cp
- 模式二:直接 adb + 命令 來執行 ADB命令
- 如果已經進入 ADB SHELL模式,需要先
exit
- adb install + apk 文件在windows上的路徑
- adb unistall + apk 的包名
- adb pull 拉,把文件從Android下載到windows中
- adb push 推,把windows文件放到Android中
- 如果已經進入 ADB SHELL模式,需要先
- adb連接前
顯示當前運行的全部連接到當前電腦的設備,包括手機和模擬器等:
adb devices
連接指定的模擬器或設備
adb connect 127.0.0.1:62001
斷開指定的模擬器或設備
adb disconnect
啓動ADB
adb start-server
關閉ADB
adb kill-server
- 進入 adb的shell環境
進入adb的shell環境
adb shell
查看包名
-
adb shell
-
root@android:/ # ls data/data
記錄無線通訊日誌
-
adb shell
-
root@android:/ # logcat -b radio
刪除系統應用
-
adb shell
-
root@android:/ # cd system/app
-
root@android:/ # rm xxxx.apk
退出adb的shell環境
root@android:/ # exit
- adb命令模式
安裝應用程序
adb install -r C:\xxxxx.apk
獲取設備中的文件
-
adb pull <remote> <local>
-
adb pull /addroid/lib/libwebcore.so c:\tmp
向設備中寫入文件
-
adb push <local> <remote>
-
adb push C:\test.txt /tmp/test.txt
卸載應用程序
-
adb shell
-
cd data/app
-
rm apk包
-
exit
-
adb uninstall apk包的主包名
獲取管理員權限
adb root
獲取設備的序列號
adb get-serialno
進入SQLite環境
-
adb shell
-
sqlite3
SQLite的基本操作,SQLite沒有用戶的概 念 。
Snap1.jpg
示例:安裝TPshop的Android客戶端
步驟如下:
-
用ADB連接上設備
adb connect 127.0.0.1:62001
-
用ADB的方式安裝APP
adb install -r C:\tmp\soubaoShopMobile-debug.apk
-
安裝成功,在ADB SHELL環境中 執行 Monkey(壓力測試工具)
-
# 進入 ADB SHELL 環境
-
adb shell
-
# 獲取 TPSHOP 的APP的包名
-
root@android:/ # ls data/data | gerp soubao
-
com.soubao.tpshop
-
# 執行 Monkey
-
root@android:/ # monkey -p com.soubao.tpshop -v -v -v 5000 -throttle 5000 --pct-motion 80% > sdcard/monkey_tpshop.log
-
-
用ADB 獲取日誌到本地C盤的tmp目錄中
-
# 退出 ADB SHELL 環境
-
root@android:/ # exit
-
# 用 ADB PULL 獲取文件
-
adb pull sdcard/monkey_tpshop.log
-
[100%] sdcard/monkey_tpshop.log
-
-
用ADB的方式卸載
-
adb shell
-
root@android:/ # ls data/data | grep soubao
-
# 獲取到 app的包名
-
com.soubao.tpshop
-
# 退出 adb shell
-
root@android:/ # exit
-
adb uninstall com.soubao.tpshop
-
4.2 Monkey 工具
Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。
顧名思義,Monkey就是猴子, Monkey測試,就像一隻猴子, 在電腦面前,亂敲鍵盤在測試。 猴子什麼都不懂, 只知道亂敲,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常
Monkey 主要用於Android 的壓力測試 自動的一個壓力測試小工具, 主要目的就是爲了測試app 是否會Crash.
- Monkey程序由Android系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是:
/system/framework/monkey.jar
; - Monkey.jar程序是由一個名爲“monkey”的Shell腳本來啓動執行,shell腳本在Android文件系統中的存放路徑是:
/system/bin/monkey
;
可以在命令行中輸入
這樣就可以通過在CMD窗口中執行: adb shell monkey {+命令參數}
來進行Monkey測試了。
0.00255359997618565.png
查看Monkey命令幫助
adb shell monkey –help
類別 | 選項 | 說明 |
---|---|---|
常規 | --help | 列出簡單的用法。 |
-v | 命令行的每一個 -v 將增加反饋信息的級別。 Level 0( 缺省值 ) 除啓動提示、測試完成和最終結果之外,提供較少信息。 Level 1 提供較爲詳細的測試信息,如逐個發送到 ActivITy 的事件。 Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity 。 | |
事件 | -s <seed> | 僞隨機數生成器的seed 值。如果用相同的 seed 值再次運行 Monkey ,它將生成相同的事件序列。 |
--throttle <milliseconds> | 在事件之間插入固定延遲。通過這個選項可以減緩 Monkey 的執行速度。如果不指定該選項, Monkey 將不會被延遲,事件將儘可能快地被產成。 | |
--pct-touch <percent> | 調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)。 | |
--pct-motion <percent> | 調整動作事件的百分比(動作事件由屏幕上某處的一個down事件、一系列的僞隨機事件和一個up事件組成)。 | |
--pct-trackball <percent> | 調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)。 | |
--pct-nav <percent> | 調整“基本”導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)。 | |
--pct-majornav <percent> | 調整“主要”導航事件的百分比(這些導航事件通常引發圖形界面中的動作,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵) | |
--pct-syskeys <percent> | 調整“系統”按鍵事件的百分比(這些按鍵通常被保留,由系統使用,如Home、Back、Start Call、End Call及音量控制鍵)。 | |
--pct-appswitch <percent> | 調整啓動Activity的百分比。在隨機間隔裏,Monkey將執行一個startActivity()調用,作爲最大程度覆蓋包中全部Activity的一種方法。 | |
--pct-anyevent <percent> | 調整其它類型事件的百分比。它包羅了所有其它類型的事件,如:按鍵、其它不常用的設備按鈕、等等。 | |
約束限制 | -p <allowed-package-name> | 如果用此參數指定了一個或幾個包,Monkey將只允許系統啓動這些包裏的Activity。如果你的應用程序還需要訪問其它包裏的Activity(如選擇取一個聯繫人),那些包也需要在此同時指定。如果不指定任何包,Monkey將允許系統啓動全部包裏的Activity。要指定多個包,需要使用多個 -p選項,每個-p選項只能用於一個包。 |
-c <main-category> | 如果用此參數指定了一個或幾個類別,Monkey將只允許系統啓動被這些類別中的某個類別列出的Activity。如果不指定任何類別,Monkey將選擇下列類別中列出的Activity:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多個類別,需要使用多個-c選項,每個-c選 項只能用於一個類別。 | |
調試 | --dbg-no-events | 設置此選項,Monkey將執行初始啓動,進入到一個測試Activity,然後不會再進一步生成事件。爲了得到最佳結果,把它與-v、一個或幾個包約束、以及一個保持Monkey運行30秒或更長時間的非零值聯合起來,從而提供一個環境,可以監視應用程序所調用的包之間的轉換。 |
--hprof | 設置此選項,將在Monkey事件序列之前和之後立即生成profiling報告。這將會在data/misc中生成大文件(~5Mb),所以要小心使用它。 | |
--ignore-crashes | 通常,當應用程序崩潰或發生任何失控異常時,Monkey將停止運行。如果設置此選項,Monkey將繼續向系統發送事件,直到計數完成。 | |
--ignore-timeouts | 通常,當應用程序發生任何超時錯誤(如“Application Not Responding”對話框)時,Monkey將停止運行。如果設置此選項,Monkey將繼續向系統發送事件,直到計數完成。 | |
--ignore-security-exceptions | 通常,當應用程序發生許可錯誤(如啓動一個需要某些許可的Activity)時,Monkey將停止運行。如果設置了此選項,Monkey將繼續向系統發送事件,直到計數完成。 | |
--kill-process-after-error | 通常,當Monkey由於一個錯誤而停止時,出錯的應用程序將繼續處於運行狀態。當設置了此選項時,將會通知系統停止發生錯誤的進程。注意,正常的(成功的)結束,並沒有停止啓動的進程,設備只是在結束事件之後,簡單地保持在最後的狀態。 | |
--monitor-native-crashes | 監視並報告Android系統中本地代碼的崩潰事件。如果設置了--kill-process-after-error,系統將停止運行。 | |
--wait-dbg | 停止執行中的Monkey,直到有調試器和它相連接。 |
實際使用的時候 Monkey的 -p -v -throttle --pct-motion 使用比較多
- 下面一個實例
-
adb shell
-
ls data/data
-
monkey -p im.tower.android -v -v -v 5000 -throttle 500 --pct-motion 80% > sdcard\monkey.log
使用monkey進行Tower的壓力測試,使用級別2,操作5000個隨機命令,並且每個命令延遲5秒鐘,滑動的命令佔80%。
- 日誌分析
正常情況, 如果Monkey測試順利執行完成, 在log的最後, 會打印出當前執行事件的次數和所花費的時間;
// Monkey finished 代表執行完成\
異常情況
Monkey 測試出現錯誤後,一般的分析步驟
看Monkey的日誌 (注意第一個swith以及異常信息等)
- 程序無響應的問題: 在日誌中搜索 “ANR”
- 崩潰問題:在日誌中搜索 “Exception” (如果出現空指針, NullPointerException) 肯定是有bug
Monkey 執行中斷, 在log最後也能看到當前執行次數
5. 安全測試
- APP請求的權限(攝像頭、通訊錄、通話記錄、短信、定位、藍牙、WiFi、相冊)是否有應用場景
- APP的消息顯示(鎖屏消息提醒、消息欄、圖標的角標、最近通知的消息提醒)的關閉和開啓
主要的測試內容:
- 易測安全掃描:上傳APP到易測平臺,由阿里雲掃描併發報告。
- 權限的測試:
- 檢查APP申請的權限,列出所有權限
- 對所有的權限進行場景描述
- 消息的控制:
- 顯示消息的形式
- 顯示消息的時機(鎖屏是否顯示)
6. APP移動測試框架
隨着移動互聯網的發展,移動測試技術越來越成熟,很多優秀的開源測試框架涌現出來。作爲一個移動測試工程師,我們不僅要夯實自己的技術能力,也要學會從開源框架吸取經驗。俗話說,站在巨人的肩膀上,我們會看得更遠。移動端的測試框架主要分爲自動化測試框架,性能測試框架,穩定性測試框架和安全測試框架這幾種類型。下面我們分這幾個類型介紹10個最常用的移動端測試框架。
6.1 自動化測試框架
- 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通信方式。
6.2 性能測試框架
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文件分析等,方便開發人員自測或者測試人員完成性能測試,快速發現產品問題。
6.3 穩定性測試框架
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日誌並存儲在本地。
6.4 安全測試框架
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語言開發的,無需安裝,配置相關環境即可使用。