Android專項測試之monkey測試命令詳解


一、ADB的認識及作用:
1、adb全稱Android Debug Bridge,是Android SDK(platform-tool文件夾)中提供的一個功能強大的工具,用於PC端與Android設備進行交互。
2、借助adb工具,我們可以管理設備或手機模擬器的狀態。還可以進行很多手機操作,如安裝軟件、系統升級、運行shell命令等等。其實簡而言說,adb就是連接Android手機與PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作
二、ADB常用命令:
1、顯示當前運行的全部模擬器或手機: adb devices

2、進入到android shell模式: adb shell

cd system/sd/data //進入系統內指定文件夾 # mkdir test //創建目錄 # ls -l //列表顯示當前文件夾內容 # rm -r xxx //刪除名字為xxx的文件夾及其里面的所有文件 # rm xxx //刪除文件xxx # rmdir xxx //刪除xxx的文件夾

3、退出adb shell模式:exit

4、對某一模擬器執行命令:adb -s 模擬器編號 命令
如果當前有多台設備同時運行,則需指明具體設備: adb -s emulator-5554 shell

5、安裝應用程序:
adb install 應用程序.apk 首次安裝
adb install -r 應用程序.apk 覆蓋安裝( -r刪除舊的安裝新的)

如果安裝失敗提示沒有權限,請參考試第7步
6、卸載應用程序:adb uninstall apk包的主包名
關於應用程序存放目錄,請參考android系統目錄結構
應用程序的主包存放目錄 /data/data
cd /data/data
ls -l
7、獲取root權限: adb root
8、將設備改為可讀可寫: adb remount
9、獲取模擬器或手機中的文件:adb pull
adb pull /data/anr/traces.txt c:
10、向模擬器或手機中放入文件:adb push
adb push c:\police_db.sql /data/anr/
11、查看adb幫助信息:adb / adb help

APP調試的幾個常用命令
1、查看和跟蹤系統日志: logcat
adb logcat :將日志打印在當前adb 窗口
adb logcat > c:\mylog.txt 把日志信息重定向到一個文件中
adb logcat -c: 清空以前的日志
adb logcat -v time > c:/aaa.log [軟件運行過程中的日志信息會寫入aaa.log中]
顯示某一級別以上的日志:adb logcat -v time *:E > c:\elog.log
優先級是下面的字符,順序是從低到高:
V — 明細 verbose(最低優先級)
D — 調試 debug
I — 信息 info
W — 警告 warn
E — 錯誤 error
F — 嚴重錯誤 fatal
S — 無記載 silent
2、top
監測CPU的使用情況:adb shell top

User 處於用戶態的運行時間,不包含優先值為負進程
Nice 優先值為負的進程所占用的CPU時間
Sys 處於核心態的運行時間
Idle 除IO等待時間以外的其它等待時間
IOW IO等待時間
IRQ 硬中斷時間

SIRQ 軟中斷時間

PID 進程id
PR 優先級
CPU% 當前瞬時CPU占用率
S 進程狀態:D=不可中斷的睡眠狀態, R=運行, S=睡眠, T=跟蹤/停止, Z=僵屍進程
#THR 程序當前所用的線程數
VSS Virtual Set Size 虛擬耗用內存(包含共享庫占用的內存)
RSS Resident Set Size 實際使用物理內存(包含共享庫占用的內存)
PCY 調度策略優先級,SP_BACKGROUND/SP_FOREGROUND
UID 進程所有者的用戶id
Name 進程的名稱
監控CPU的命令使用實戰:
監控包含tencent進程的CPU:adb shell top | findstr tencent > c:\cpute.txt
3、pm
打印所有軟件包:adb shell pm list packages
清除緩存:adb shell pm clear com.tct.launcher
4、關閉和啟動adb服務,模擬器在運行一段時間后,adb服務有可能會出現異常。這時需要重新對adb服務關閉和重啟
adb kill-server
adb start-server

adb monkey
三、 Monkey的認識:
Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。

四、 Monkey的特征:
1、 測試的對象僅為應用程序包,有一定的局限性。
2、 Monkey測試使用的事件流數據流是隨機的,不能進行自定義。
3、 可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。

五、Monkey的基本用法:
基本語法如下:
$ adb shell monkey [options]
如果不指定options,Monkey將以無反饋模式啟動,並把事件任意發送到安裝在目標環境中的全部包。下面是一個更為典型的命令行示例,它啟動指定的應用程序,並向其發送500個偽隨機事件:
$ adb shell monkey -p your.package.name -v 500
adb shell monkey -p com.amaker.mp -v 500
adb shell monkey -p com.amaker.mp -v 500 > c:\monkeya.txt
六、Monkey測試的一個實例:
通過這個實例,我們能理解Monkey測試的步驟以及如何知道哪些應用程序能夠用Monkey進行測試。
Windows下(注:2—4步是為了查看我們可以測試哪些應用程序包,可省略):
1、 通過eclipse啟動一個Android的emulator
2、 在命令行中輸入:adb devices查看設備連接情況
adb devices
3、 在有設備連接的前提下,在命令行中輸入:adb shell 進入shell界面
C:\Documents and Settings\Administrator>adb shell

4、 查看data/data文件夾下的應用程序包。注:我們能測試的應用程序包都在這個目錄下面
C:\Documents and Settings\Administrator>adb shell

ls data/data

ls data/data

5、 以com.amaker.mp作為對象進行MonkeyTest
#monkey -p com.amaker.mp -v 500
其中-p表示對象包 –v 表示反饋信息級別
運行過程中,Emulator中的應用程序在不斷地切換畫面。
按照選定的不同級別的反饋信息,在Monkey中還可以看到其執行過程報告和生成的事件。

七、Monkey參數分析:
-p: 被測試app的包名,
設置事件百分比,所有的百分比加起來不能超過100%
0:觸摸事件百分比,即參數–pct-touch
1:滑動事件百分比,即參數–pct-motion
2:縮放事件百分比,即參數–pct-pinchzoom
5:軌跡球事件百分比,即參數–pct-trackball
4:屏幕旋轉事件百分比,即參數–pct-rotation
3:基本導航事件百分比,即參數–pct-nav
6:主要導航事件百分比,即參數–pct-majornav
7:系統事件百分比,即參數–pct-syskeys
8:Activity啟動事件百分比,即參數–pct-appswitch
9:鍵盤翻轉事件百分比,即參數–pct-flip
10:其他事件百分比,即參數–pct-anyevent
–throttle 300:在事件之間插入固定的時間(毫秒)延遲,你可以使用這個設置來減緩Monkey的運行速度,如果不指定參數,則事件之間將沒有延遲,事件將以最快的速度生成
–throttle time --randomize-throttle 設置隨機時間的時間間隔區間
例:adb shell monkey 100 --throttle 500 --randomize-throttle
說明:執行一百次monkey隨機事件,每次事件的間隔在0到500毫秒之間不固定
–ignore-crashes:忽略程序崩潰,設置此選項后,Monkey會執行完所有的事件,不會因crash而停止。
–ignore-timeouts:忽略程序無響應,設置此選項后,Monkey會執行完所有的事件,不會因ANR而停止
–ignore-native-crashes 忽略monkey本身的異常,直到事件執行完畢
例:adb shell monkey --ignore-native-crashes -v 100
–ignore-security-exceptions:忽略證書或認證異常,設置此選項后,Monkey會執行完所有的事件,不會因認證或證書異常而停止
–monitor-native-crashes:監視系統中本地代碼發生的崩潰
-v -v -v:每個-v都將增加反饋信息的級別,共3個級別,-v -v -v將提供最詳細的設置信息
-s: 用於指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的

八、關於Monkey測試的停止條件:
Monkey Test執行過程中在下列三種情況下會自動停止:
1、如果限定了Monkey運行在一個或幾個特定的包上,那么它會監測試圖轉到其它包的操作,並對其進行阻止。
2、如果應用程序崩潰或接收到任何失控異常,Monkey將停止並報錯。
3、如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止並報錯。
通過多次並且不同設定下的Monkey測試才算它是一個穩定性足夠的程序。

九、Monkey選項在實際測試中的運用
adb shell monkey -p com.amaker.mp -s 300 --throttle 300 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 1000 > C:\java_monkey_log.txt

十、結果分析:
一般的測試結果分析:
1.ANR問題:在日志中搜索“ANR”
2.崩潰問題:在日志中搜索“Exception”, “Crash”, “error”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM