一. monkey測試簡介
monkey工具是Android自動化測試工具的一種,主要對Android app穩定性和健壯性進行測試。
Monkey是Android系統中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等)模擬用戶操作,實現對設備上的程序的壓力測試,檢測程序多久時間會發生異常。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。
二. monkey的特征
1. 測試的對象僅為應用程序包,有一定的局限性。
2. Monky測試使用的事件流數據流是隨機的,不能進行自定義。
3. 可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
適用情況:ANR和CRASH異常情況;低概率很難復現的異常。
三. 安裝monkey工具
1. 下載安裝JDK
附JDK官網下載鏈接http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下載截圖(其中需要同意許可證,同時針對mac下載和window下載(x86是32位,x64是64位)已標注)
安裝成功后可驗證是否安裝成功,mac打開終端,輸入java -version回車,出現版本信息則安裝成功
2.下載Android開發環境的Adt Bundle
附下載鏈接http://www.cnblogs.com/tc310/p/3938353.html
下載截圖(針對mac下載和window下載(x86是32位,x64是64位)已標注)
安裝成功后可驗證是否安裝成功,mac打開終端,輸入adb version回車,出現版本信息則安裝成功
此時打開終端輸入adb會提示-bash: abd: command not found。需要解決Android SDK的adb命令添加到環境變量的問題。
1. 啟動終端,進入到當前用戶的Home目錄(命令在下一行)
cd $HOME
2. 創建 .bash_profile文件
touch .bash_profile
3. 打開 .bash_profile 文件,對其內容進行編輯
open -e .bash_profile
4. 此時文本編輯器會打開一個文本,編輯內容如下:
export PATH=${PATH}:此處粘貼adb中platform-tools文件夾所在的目錄路徑地址
編輯完成后,可直接關閉,此時已保存
5.更新此文件
source .bash_profile
此時的adb環境配置好,可以檢驗一下
6.檢驗是否成功(終端輸入)
adb/adb devices
adb組成
客戶端client:運行在pc端上,可以通過shell來調起一個客戶端,其他android工具
服務器server:運行在pc端后台,負責管理client和daemon進行通信
守護進程daemon:運行在模擬器或者android設備的后台
adb常見命令
adb --help 查看幫助手冊
adb devices 檢測連接到電腦的安卓設備
adb pull <手機路徑><本機路徑>從手機中拉取信息放到本地電腦上
adb shell ;ls ;cd sdcard ; exit ; 手機路徑 /sdcard/kwsecurity-crash.txt 本機路徑 /Users/mac/Desktop/
adb push <本機路徑><手機路徑>從本地推送信息到手機上去
adb push /Users/mac/Desktop/yiwei /sdcard/
adb shell 登錄設備 shell(命令行的人機界面)進入linux環境了。(相當於執行遠程命令)
pm list packages 查看應用安裝的包
$ pm list packages | grep mockuai 根據某個關鍵字查找包
adb logcat 打印日志
control+c 停止
adb logcat > 目錄文件保存日志文件
ps:查看當前運行程序
adb install xxx.apk apk所在路徑
adb uninstall 應用包名
adb shell dumpsys activity | find "mFocusedActivity" --查看前台應用包名
adb shell dumpsys activity | grep "Focus" com.mockuai.mkselleros
adb connect/disconnect 通過wifi進行遠程連接手機進行調試
adb tcpip 5555
3. 打開usb調試
若使用真機,用USB將手機和Mac連接,在手機端進行操作:
1. 選擇USB連接方式為傳輸文件;
2. 設置->其他設置->開發者選項->開啟開發者選項和usb調試(真機和模擬器上皆需進行);
檢測是否連接了設備:adb devices
部分真機可能存在檢測不到的情況,可進行創建、修改adb_usb.ini文件,操作如下:
a、在終端中輸入‘system_profiler SPUSBDataType’,找到手機的Vendor ID並記錄;
b、在終端中輸入‘vi ~/.android/adb_usb.ini’,創建並打開文本,按‘I’鍵可對文本進行編輯,向文本中添加記錄的Vendor ID
(若添加多個,需確保每個id占一行且文本中無空行),完成后按‘esc’鍵,然后鍵入‘:wq!’,即可保存並退出文本。完
成此步后將發現路徑/Users/xxx/.android下存在adb_usb.ini文件;
c、將手機拔掉重新接入Mac,重復1.2,在終端中輸入‘adb kill-server’,然后輸入‘adb start-server’,再次輸入‘adb devices’查看是否識別到設備。
四. monkey常見命令
monkey命令格式:
adb shell monkey {+命令參數} 次數
adb shell monkey -help/-h
-v 用於指定反饋信息級別(信息級別就是日志的詳細程度,總共分三個級別)
-p 后面接着的對應的包名,此參數指定一個或多個包
-s 用於指定偽隨機數生成器的seed值,如果seed值相同,則兩次monkey測試所產生的事件序列也相同的。(用於問題重現)
--throttle<毫秒> 用於指定用戶操作(事件)間的時延,單位是毫秒
-ignore-crashes-ignore-timeouts 在monkey測試的過程中遇到crash或者timeout的情況忽略掉,一般不設置時,出現crash或者timeout時,monkey測試會終止
設置這個是為了防止monkey測試終止
次數 指點擊的次數,一般設置100000