(一)可以通過Python或是cmd進入DOS窗口進行命令輸出.
- cmd進入DOS窗口,進行adb命令的執行(前提是提前安裝adb,安裝教程自行百度)
- 打開PyCharm,import os,利用os.system( )進行adb命令的執行
(二)在DOS窗口進行Monkey測試:
- 通過數據線連接手機和電腦,開啟USB調試模式,打開開發者模式
- adb devices 檢查設備是否存在
- adb shell "logcat | grep START" 獲取包名(在輸入命令后,點擊需要測試的APP,在屏幕輸出的最后一行的cmp=右邊的就是app的包名。)
- 執行Monkey測試,輸出指令:adb shell monkey -p com.xxxxxx.buyer -v -v -v -s 200 1000
- -p 后面可以指定測試某一個或是多個測試包
- -s 用於指定偽隨機數生成器的seed值,如果seed值相同,則倆次Monkey測試所產生的 的事件序列也是相同的(就是seed值相同,倆次Monkey測試的操作事件的順序也是相同的)
- -v 指定信息反饋的級別,-v,-v -v,-v -v -v三個級別,-v -v -v是最高級別,反饋的信息是最詳細的,一般測試時選擇最高級別.
- 200指的就是seed的序列可以任意設置不同的整數
- 1000指的就是設置的點擊次數
(三)Monkey測試中常用的參數:
- --throttle (毫秒) 倆個事件操作間的延時操作時間
- --randomize-throttle 在事件間插入隨機延時范圍為0到throttle設置的時間 (例子:adb shell monkey -p com.d2cmall.buyer --thro-ttle 5000 randomize-throttle 100 1000)
- --ignore-crashes 忽略程序崩潰。設置此選項后,Monkey會執行完所有的事件,不會因crash而停止。
- --ignore-timeouts 忽略程序無響應。設置此選項后,Monkey會執行完所有的事件,不會因ANR而停止。
- --ignore-security-exceptions 忽略證書或認證異常。設置此選項后,Monkey會執行完所有的事件,不會因認證或證書異常而停止。
- --ignore-native-crashes 監視系統中本地代碼發生的崩潰
- --monitor-native-crashes 忽略本地代碼導致的崩潰。設置忽略后,Monkey將執行完所有的事件,不會因此停止。
(四)Monkey調整百分比事件:
-
--pct-touch 調整點擊事件的百分比(上下點擊)
-
--pct-motion 調整移動事件的百分比(直線滑動)
-
--pct-pinchzoom 調整倆指縮放壓縮手勢的百分比,比如放大縮小手勢操作
-
--pct-rotation 調整旋轉事件的百分比(橫屏豎屏)
-
--pct-nav 調整主要導航事件的百分比,例如中間鍵/菜單鍵/退回鍵
-
--pct-syskeys 調整"系統"按鍵事件的百分比,這些按鍵一般專供系統使用,如back/home/call/音量控制等
-
--pct-appswitch 調整app切換事件的百分比
-
--pct-flip 調整鍵盤喚出隱藏事件的百分比
- 例:adb shell monkey -p com.xxx.buyer -s 200 -v -v -v --pct-touch 100 1000 (注:百分比事件命令可以組合使用)
(五)monkey黑白名單:
-
創建白名單whitelist.txt,在名單內輸入想要測試的包名
-
把文件推送到手機端的/data/local/tmp目錄
-
推送命令:adb push whitelist.txt文件所在的路徑 /data/local/tmp
-
執行這個文件,adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 1000次
-
創建黑名單blacklist.txt,在名單內輸入想要測試的包名
-
執行這個文件,adb shell monkey --pkg-blacklist-file /data/local/tmp/whitelist.txt 1000次
(六)把Monkey日志輸出到指定文件:
- adb shell monkey -p com.xxxxxxl.buyer -v -v -v -s 200 1000 > /絕對路徑+指定文件名
(七)終止Monkey測試的執行:
- 在dos窗口ctrl+c終止后,adb shell ps查詢到monkey的進程,kill 進程號
- adb shell后再進行ps的進程查詢可能會出現只顯示shell內正在進行的進程而導致查詢不到Monkey進程,adb shell ps顯示的是手機內的所有進程
Monkey測試出現的異常的原因以及日志分析:
- 一般是由於以下兩種原因導致的:
- Crash 程序崩潰(程序存在空指針/CPU內存不足/內存不足)
- ANR 程序無響應(CPU不足/內存不足/線程阻塞)
- 常見的測試結果分析方法-搜索關鍵字:(在日志中搜索“ANR”,在日志中搜索“CRASH”,在日志中搜索”Exception”)