monkey的簡單介紹
Monkey測試是Android app自動化測試的一種手段,Monkey測試自己很是簡單,就是模擬用戶的按鍵輸入,觸摸屏輸入等,看設備是否出異常。
當Monkey程序在模擬器或設備運行的時候,若是用戶出發了好比點擊,觸摸,手勢或一些系統級別的事件的時候,它就會產生隨機事件,因此能夠用Monkey用隨機重複的方法去測試app. shell
一:前提:電腦已經安裝AndroidSDKapp
1.設安裝包: xxx.apk ,包名爲:com.xxx_xxx測試
2.把安裝包放在:C:\monkey (monkey爲新建的文件夾)spa
3.cmd進入命令行,手機和電腦鏈接。手機打開開發者模式,容許調試.net
4.輸入:adb devices ,出現下圖的提示,表示鏈接成功,就能夠進行下一步操做。命令行
二:輸入命令:cd C:\monkey 這樣就進入了放置安裝包的目錄下,就能夠安裝安裝包了線程
1.安裝包:adb install xxx.apk指針
2.查看包名:aapt dump badging C:\monkey\xxx.apk調試
3. 直接運行10次 :adb shell monkey -v -p com.xxx_xxx(包名) 10日誌
4.重複以上操做: adb shell monkey -s (seed) -v <envent-count> 如:adb shell monkey -s 1535655135292 -v 10
5.生成txt日誌:adb shell monkey -v -p com.xxx_xxx(包名) 10 >./monkey_log.txt
三:指定時間參數設置
在Monkey中,雖然輸入的事件是隨機產生的,可是能夠指定輸入事件類型的百分比,讓其控制在咱們須要的範圍內。
在Monkey中,能夠設定的事件類型有:
--pct-touch <percent>:指定觸摸事件的百分比。--pct-motion <percent>:指定滑動事件的百分比--pct-trackball <percent>:指定軌跡球事件的百分比--pct-nav <percent>:指定導航事件中,up、down、left、right等事件的百分比--pct-majornav <percent>:指定導航事件中,back、menu等事件的百分比--pct-syskeys <percent>:指定系統按鍵的百分比,包括HOME、Back、音量等。--pct-appswitch <percent>:指定Activity之間切換的比例。--pct-anyevent <percent>:指定任意事件的百分比
默認狀況下,若是不設置,會是-pct-anyevent爲百分之百,也就是純隨機事件。若是經過其餘的參數配置了以後,若是相加的百分比不爲百分百,餘下的百分比部分也會生成隨機事件。
4、日誌參數
-v 較少的日誌信息
-v -v 較爲豐富的日誌信息
-v -v -v 最高級別的日誌信息
通常狀況下單個app monkey 模擬測試10萬次足矣。
5、如下是app monkey測試的詳細步驟
1. 先進入cmd界面,輸入adb devices,查看是否正常鏈接。
2. 輸入adb logcat | findstr START 監控app,打開你要測試的app,cmd查看app的包名。cmp=右邊的就是app的包名。
3. 輸入adb logcat -c 先清除下logcat日誌信息
4. 輸入adb logcat -v time >F:\logcat.log
5. 輸入adb shell monkey -p +app包名 -v 10000 >F:\monkey.log
0–> –pct-touch
1–> –pct-motion
3–> –pct-trackball
6–> –pct-nav
7–> –pct-majornav
8–> –pct-syskeys
9–> –pct-appswitch
11–> –pct-anyevent
6、經過adb命令作迴歸測試
當開發修改問題後,須要作迴歸測試驗證是否修改ok,此時測試人員須要使用上一次跑的monkey測試中的seed值作迴歸測試。
** System appears to have crashed at event 468 of 1000 using seed 1557722456728
該seed值,在上次跑完腳本的時候,能夠在最後一行顯示打印出來,記得日誌顯示使用詳細,即-v -v -v才能看到seed值
adb shell monkey -p +包名 -s +seed值 -v 10000
好比
adb shell monkey -p com.shanjian.originaldesign -s 1536629919450 -v10000
7、monkey日誌分析
當monkey測試時出現問題,此時咱們須要分析定位問題,咱們須要分析monkey日誌
Monkey測試出現的異常的緣由:
通常是兩種緣由致使的,一個是crash 程序崩潰,致使crash緣由以下
a)、程序存在空指針
b)、cpu不足
c)、內存不足
另外一種是ANR 程序無響應,致使anr無響應緣由以下:
a)、線程阻塞
b)、cpu不足
c)、內存不足
查找分析緣由:
1. 當monkey測試出現異常終止,請打開logcat日誌搜索關鍵字‘anrin’,若是存在該關鍵字,說明app出現了ANR異常,咱們須要把/data/anr目錄下的trace.txt文件取下來。
2. 取下來trace.txt文件後,將出現問題的進程號對應的日誌發給軟件工程師定位,若是在logcat日誌裏沒有搜索到’anrin’關鍵字,就搜索’nullpointer’異常關鍵字的上下日誌,發給開發定位
3. 當出現ANR後,須要導出,步驟以下:
1. 輸入adb shell
2. 輸入cd /data/anr/
3. 輸入ls
退出exit後,直接在cmd下輸入
4. adb pull /data/anr/traces.txt d:\trace.txt
5. 在logcat將出現anr問題的進程號複製,而後在trace.txt文件裏按ctrl+F 查找,粘貼進程號,查找對應的問題
---------------------