monkey語法參考鏈接
http://blog.csdn.net/marshalchen/article/details/9119979 (鏈接失效)
http://www.cnblogs.com/TankXiao/p/4815134.html
http://www.cnblogs.com/chengchengla1990/p/4527409.html (發(fā)送事件)使用monkeyrunner進(jìn)行android自動(dòng)化的總結(jié) http://blog.csdn.net/yaya1943/article/details/53997419
monkey 用于穩(wěn)定性、健壯性測試,主要發(fā)現(xiàn)程序存在的nullpointexception 、內(nèi)存溢出(死循環(huán)/資源未釋放)等導(dǎo)致的crash。
monkey 用法:add shell 下monkey命令后跟參數(shù),monkey -p my app -s 23 --throttle 2000 --ignore-crashes --ignore-timeouts -v -v -v 100000 >/data/local/tmp/log.txt 2>1&
- -p后面接著的對(duì)應(yīng)的包名,如果是整機(jī)測試,就不需要 -ppackage_name
- -s后面是對(duì)應(yīng)的種子數(shù),好像就是操作步驟,根據(jù)她們測試的經(jīng)驗(yàn),一般種子數(shù)在23,同步她們測試的結(jié)果,一般種子的個(gè)數(shù)固定為23,和她們選擇的操作步驟就是同步的。
- --ignore-crashes --ignore-timeouts 這里是在monkey測試的過程中遇到carash或者timeout的情況時(shí)忽略掉,一般不設(shè)置時(shí),出現(xiàn)carash或者timeout時(shí),Monkey測試會(huì)終止。這里是防止Monkey測試終止。
- -v 指的是Monkey測試時(shí)打印log級(jí)別。
- 100000 這里是指點(diǎn)擊的次數(shù),根據(jù)她們測試的經(jīng)驗(yàn),對(duì)于單個(gè)應(yīng)用程序這個(gè)次數(shù)設(shè)置在100000次就可以了;如果是整機(jī),一般設(shè)置在500000次。
/data/local/tmp/log.txt測試的log記錄在手機(jī)上/data/local/tmp/ 下面的log.txt里面,這個(gè)名字可以自己寫。 - 2>&1 固定的寫法,這個(gè)也很重要,代表的意思是中間忽略的東東的日志一并輸入到指定的文件中。
- 最后單獨(dú)的一個(gè)"&" 是一旦Monkey測試開始了,之后可以拔掉數(shù)據(jù)線,不會(huì)影響Monkey測試。
- 測試所有模塊 monkey -s 23 --ignore-crashes --ignore-timeouts -v-v -v 100000> /data/local/tmp/log.txt 2>&1 &
- monkey runner 在對(duì)monkey封裝的基礎(chǔ)上提供了一套API用于在android外通過程序操作android設(shè)備和UI界面。
-用到的包
from com.android.monkeyrunner import MonkeyRunner
from com.android.monkeyrunner import MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice,By(通過ID找元素)
from com.android.chimpchat.hierarchyviewer import HierarchyViewer(解析UI界面元素,提取界面元素)