APP使用monkey进行稳定性测试过程
APP使用monkey進行穩(wěn)定性測試記錄
Monkey測試是Android自動化測試的一種手段,Monkey測試本身非常簡單,就是模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等,看設(shè)備多長時間會出異常。
當(dāng)Monkey程序在模擬器或設(shè)備運行的時候,如果用戶出發(fā)了比如點擊,觸摸,手勢或一些系統(tǒng)級別的事件的時候,它就會產(chǎn)生隨機脈沖,所以可以用Monkey用隨機重復(fù)的方法去負荷測試你開發(fā)的軟件.
最簡單的方法就是用用下面的命令來使用Monkey,這個命令將會啟動你的軟件并且觸發(fā)500個事件.
$ adb shell monkey -p your.package.name -v 500
Monkey是一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。Monkey包括許多選項,它們大致分為四大類:
? 基本配置選項,如設(shè)置嘗試的事件數(shù)量。
? 運行約束選項,如設(shè)置只對單獨的一個包進行測試。
? 事件類型和頻率。
? 調(diào)試選項。
在Monkey運行的時候,它生成事件,并把它們發(fā)給系統(tǒng)。同時,Monkey還對測試中的系統(tǒng)進行監(jiān)測,對下列三種情況進行特殊處理:
? 如果限定了Monkey運行在一個或幾個特定的包上,那么它會監(jiān)測試圖轉(zhuǎn)到其它包的操作,并對其進行阻止。
? 如果應(yīng)用程序崩潰(crash)或接收到任何失控異常,Monkey將停止并報錯。
? 如果應(yīng)用程序產(chǎn)生了應(yīng)用程序不響應(yīng)(application not responding,簡稱:ANR)的錯誤,Monkey將會停止并報錯。
按照選定的不同級別的反饋信息,在Monkey中還可以看到其執(zhí)行過程報告和生成的事件。
接下來我們就來實際操作一下monkey得測試過程
一,安裝monkey環(huán)境
1,提前下載AndroidSDK環(huán)境https://www.androiddevtools.cn/和環(huán)境變量(需要先安裝java環(huán)境)
2,配置環(huán)境教程(可以參考這個地址)https://www.jianshu.com/p/c3e1fe6f61c4
3,安卓設(shè)備(我用得是真機)
二,連接設(shè)備
1,手機打開USB調(diào)試模式
2,cmd命令行輸入 adb devices
有序列號出現(xiàn),這樣就是連接成功了
連接信息解釋:
手機設(shè)備:顯示設(shè)備的序列號,如圖的3TG0221903001884
device:已識別的設(shè)備,連接成功(這種情況即連接成功)
unauthorized:沒有授權(quán),需要手機上授權(quán)后才能鏈接(手機授權(quán)一下解決)
unkown:未識別的設(shè)備(電腦按照驅(qū)動)
offine:離線設(shè)備(設(shè)備和電腦斷開連接了)
三,monkey得常用命令,
1,adb shell monkey:查看所有支持的monkey命令
2,打開cmd,輸入adb shell monkey查看所有支持得monkey命令
2,adb shell monkey 100:隨機發(fā)送100次操作(針對整個手機),count指事件,100即100次事件
3,monkey命令-事件間隔
1,adb shell monkey --throttle 1000 10:發(fā)送10個事件,1秒一個。1000指1000毫秒,10指10次,即一秒一次,一共10次,throttle用來控制事件發(fā)送頻率
2,adb shell monkey --throttle 6000 10:發(fā)送10個事件,持續(xù)時間一分鐘
4,monkey命令-指定包運行
1,-p此參數(shù)指定了一個包,monkey將至允許系統(tǒng)啟動這些包里的activity
5,查詢指定包名
1,adb shell dumpsys window w | findstr / | findstr name= 打開指定的APP在輸入這個指令可以找到指定包的報名(建議用這種,手機上安裝的app比較多的時候不好找)
2,adb shell pm list package -3 (查看手機上安裝的第三方安裝包)
3,adb shell pm list packages:找到手機所有包名
4,-p -p 如果此參數(shù)指定了幾個包,monkey將只允許系統(tǒng)啟動這些包里的activity
四,查找包名進行monkey測試
1,手機先啟動要測試得程序,然后輸入命令行adb shell dumpsys window w | findstr / | findstr name=
找到包名
2,輸入命令行adb shell monkey -p 包名 --throttle 500 50 跑這個程序,50次,500毫秒一次(根據(jù)實際可隨意調(diào)整參數(shù))
–throttle 500 設(shè)定延時
3,這樣就算簡單得跑起來了,當(dāng)然你可以自己設(shè)定跑得次數(shù),
五,查看結(jié)果,輸出日志
1,可以跑起來后,那我們要怎么才知道是不是穩(wěn)定,有沒有出現(xiàn)問題,那這時候就需要查看日志了,
首先,我們要創(chuàng)建一個文件夾,這是我之前就創(chuàng)建好了得,D盤下創(chuàng)建一個叫monkey得文件夾
然后在輸入命令行adb shell monkey -p com.jialan.taishan.activity -v 1000 >D:\limengqian\monkey\monkey.log 添加包名,
-v顯示默認程度的信息,后面>添加文件夾得路徑,\monkey.log 是日志得名稱,
運行后,會在monkey得文件夾下自動添加\monkey.log日志
monkey.log日志只是記錄monkey事件得過程,最終問題我們還是需要結(jié)合logcat日志來分析問題
2,獲取logcat日志(logcat日志,記錄了用戶的在系統(tǒng)上的所有操作)
1)、先清空系統(tǒng)上原有的logcat日志:adb logcat -c
2)、獲取logcat日志:adb logcat -v time > D:\limengqian\monkey\logcat.log – 把logcat日志導(dǎo)入到D盤的monkey目錄下。
這些做完后,就可以再次輸入命令跑起來拉,
monkey跑后,會出現(xiàn)如下日志:
//activityResuming(com.android.settings)
//activityResuming(com.android.settings)
— 表示一個APP從前臺調(diào)入后臺,然后又從后臺恢復(fù)到前臺的過程,每做一次這樣的動作,就會產(chǎn)生一行這樣的信息。
這里表示"com.jialan.taishan.activity做了兩次這樣的動作。
六,分析monkey日志
Monkey 日志由以下幾部分組成:
(1) 測試命令信息:隨機種子 seed、運行次數(shù)、可運行應(yīng)用列表、各事件百分比。
偽隨機事件流:記錄各種隨機操作及中間的延遲時間,主要是以下幾種操作:
測試結(jié)果信息:完成時間數(shù),其他信息
logcat日志分析問題
logcat日志分析的基本步驟。
1,如果是ANR(Android Not Responding)問題(具體的表現(xiàn)是,系統(tǒng)出現(xiàn)類似這樣的提示:APP提示無法響應(yīng),是結(jié)束進行還是繼續(xù)等待), 則搜索“ANR” 或 'anr in’關(guān)鍵詞。 快速定位到關(guān)鍵事件信息 。
如:
12-02 21:31:22.350 E/ActivityManager( 389): ANR in com.android.settings (com.android.settings/.SubSettings)
12-02 21:31:22.350 E/ActivityManager( 389): PID: 676
2,如果是系統(tǒng)crash(具體的表現(xiàn)是,系統(tǒng)出現(xiàn)類似這樣的提示:很抱歉,“xxx”已停止運行),會有這些關(guān)鍵字:java.lang.NullPointerException。
舉個例子
本例子,我們在logcat日志中搜索anr in,發(fā)現(xiàn)以下日志:
這個日志的意思是,app出現(xiàn) ANR的問題,進程號是676,ANR的跟蹤日志在/data/anr/traces.txt文件里。
接下來,我們通過ADB命令adb pull /data/anr/traces.txt D:\apk\獲取出traces.txt文件。我們把這個文件提供給開發(fā)定位即可。
總結(jié)
以上是生活随笔為你收集整理的APP使用monkey进行稳定性测试过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汽车租赁系统测试java,Java测试-
- 下一篇: 汽车租赁APP