Monkey測試是Android自動化測試的一種手段,Monkey測試本身非常簡單,就是類比使用者的按鍵輸入,觸控螢幕輸入,手勢輸入等,看裝置多長時間會出異常。
當Monkey程式在模擬器或裝置啟動並執行時候,如果使用者出發了比如點擊,觸摸,手勢或一些系統層級的事件的時候,它就會產生隨機脈衝,所以可以用Monkey用隨機重複的方法去負荷測試你開發的軟體.
monkey 無序類比
最簡單的方法就是用用下面的命令來使用Monkey,這個命令將會啟動你的軟體並且觸發100個事件
adb shell monkey -p
com.example.com.zte.com.testmemory
-vvv 100 > monkey100.txt
monkeyRunner 自訂指令碼
事件及API參考文檔:
android-sdk-windows/docs/guide/developing/tools/MonkeyDevice.html
先使用hierarchyviewer.bat
進行座標定位
,找到解鎖鍵的座標
安裝至少python2.6以上版本,編寫如下的代碼(先解鎖,再啟動測試的zte.sync.com/.GetLogcat,並)
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
import time
import os
path = "d:/"
newFloder = "97eResult"
new_path = os.path.join(path,newFloder)
#if not os.path.isdir(new_path)
#os.makedirs(new_path)
device = MonkeyRunner.waitForConnection()
device.wake()
#device.touch(240,510,MonkeyDevice.DOWN)
#MonkeyRunner.sleep(3)
#device.touch(240,510,MonkeyDevice.UP)
device.drag((240,510),(444,510),0.1,10)//滑動解鎖
device.startActivity(component = "zte.sync.com/.GetLogcat")//開啟應用
result = device.takeSnapshot()//
t = time.strftime("%Y%m%d%X",time.localtime())
t = t.replace(":","-")
result.writeToFile('d:/97eResult/'+t+'.png','png');
在命令列中執行
結果如下:
優點:
針對偶現故障複現代價太大,手動進行這些操作很難有效提高複現效率,而且一系列重複性的工作將很快使人進入疲勞狀態。此時採用自動化工具協助完成這些操作就顯得十分重要,首先可以提高手機操作速度,其次可以延長工作時間,還可以將手機即時狀態記錄下來,有效提高複現效率。
參考文檔 http://www.cnblogs.com/youxilua/archive/2011/11/12/2246576.html