天天看點

app測試2--monkey穩定性測試

一、monkey基礎

1、為什麼要進行monkey測試

monkey測試是為了測試穩定性和健壯性

crash:崩潰、閃退

ANR機制--Application Not Responding:在主線程中進行了耗時的操作

主線程:負責UI相關,子線程:負責具體事務

耗時操作有:在主線程中請求網絡操作、資料庫的查詢、

2、monkey簡介

是android中附帶的一個工具

它向系統發送僞随機的使用者事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實作對應用程式進行穩定性和健壯性測試

3、monkey工作原理

monkey運作的時候,生成僞随機事件流,并把他們發給系統,同時monkey還對測試中的系統進行監測,并進行特殊處理

如果應用程式崩潰或接收到任何失控異常,monkey将停止并報錯

如果應用程式産生了應用程式不響應的錯誤,monkey将會停止并報錯

按照標明的不同級别的回報資訊,在monkey中還可以看到其執行過程報告和生成的事件

二、monkey的使用

1、開始-運作-cmd

usb連接配接手機,輸入adb  shell  monkey 指令

adb monkey shell -p com.tencent.mm -v  500

2、日志的擷取

為了友善分析問題,可以将日志資訊重定向到檔案中

格式:monkey -p  com.tencent.mm -v 1000 >1.log   --一個>是覆寫

           monkey -p  com.tencent.mm -v 1000 >>1.log  --兩個>>是追加

adb shell

monkey   -p  com.tencent.mm -v 1000 >d:/1.txt  --不正确,因為adb shell 後進入了手機,手機沒有d盤,正确的指令是:

adb shell  monkey   -p  com.tencent.mm -v 1000 >d:/1.txt

如果進行monkey測試時,遇到anr或crash的情況,在抓取log的同時需要提供traces.txt(在/data/anr/下)

adb  shell cd /data/anr

ls

monkey指令行參數 :

-p 

monkey -p com.tencent.mm -p  com.aotuyidongzhifa.cn  -v  100

-V -VV  -VVV  

-s 用于指定僞随機事件生成器的seed值,如果seed相同,則兩次monkey測試所産生的事件序列也是相同的

-throttle<毫秒>用于指定使用者操作間的延遲,機關是毫秒

--ignore -crashes 應用程式即使發生崩潰,也會運作直到計數完成

adb shell monkey -p  com.tencent.mm  --ignore -crashes -v 500

--ignore - timeouts 應用程式即使發生ANR錯誤時,monkey依然會發送事件,直到事件計數完成

adb shell monkey  -p com.tencent.mm  --ignore -timeouts 

adb shell  -> cd system/bin  ->ls 可以看到很多linux指令,包括

adb shell monkey  -p  cn.com.pyc  200

adb  shell monkey -p cn.com.pyc -v 500

adb shell monkey -p cn.com.pyc  -s  12345  -v 500  >e:1.txt

--打開monkey測試的日志檔案,搜尋error、exception、crash、anr

adb  shell monkey -p cn.com.pyc  -v  -s 1234567  --throttle  300 200 >e:/1.txt

--如果想讓多一點觸摸事件

adb  shell monkey  -p cn.com.pyc -v -s  11709 --throttle 300  --pct-touch 50 200 >e:/1.txt

--如果測試的過程中出現crash異常,提供monkey日志的同時還要提供monkey指令,還要附上響應的crash截圖

--如果測試過程中出現anr異常,需要另外提供traces檔案   adb shell->cd data/anr ->ls ->traces.txt