1
android sdk安装过程参考: http://blog.csdn.net/dr_neo/article/details/49870587 安装过程中platform-toos总是安装不成功,后面按照版本号单独下载了个包,然后复制粘贴到android-sdk目录下,文件名为platform-tools即可。
2
安装完成后 运行cmd
adb shell #进入shell脚本模式
cd /system/framework #进入framework目录
ls #查看monkey.jar有否
adb shell pm list packages #查看手机内所有的包名
adb shell "dumpsys window |grep mCurrent" #查看当前应用的名包
monkey -p com.mar.ui -v 500 #执行monkey命令
monkey -help #monkey命令帮助
adb shell monkey -p com.mar.ui -v 1000>d:\monkeylog.txt #将结果重定向到本地
查看导出文件,此文件无crash和anr报错信息
3
在Monkey测试过程中可能会出现程序崩溃(CRASH)和程序无响应的情况(ANR),要将测试的log信息获取到,从而解决bug
测试过程中出现crash现象时,根据seed值来完成bug的复现:adb shell monkey -p (包名) -s (seed值) -v 1000
测试过程中出现ANR现象,会输出相应的信息,以ANR开头,获取到信息进行问题的解决,同样可以通过seed来进行复现 adb shell cd /data/anr切换到设备路径下 ls可以看到traces.txt里面即为log信息
4
monkeyscript monkeyscript是monkey的脚本语言,是一组可以被monkey识别的命令集合,可以帮我们完成一系列的被固定的重复性操作,monkey通过脚本来进行测试,只是一个记事本文件,缺点是在坐标、按键等方面没有逻辑性。
常用API的介绍
LaunchActivity(pkg_name, cl_name): 启动应用的Activity。参数:包名和启动的Activity。
Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。
DispatchPress(keyName): 按键。参数: keycode
RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。
DispatchFlip(true/false): 打开或者关闭软键盘。
LongPress(): 长按2秒。
PressAndHold(x, y, pressDuration): 模拟长按事件。
DispatchString(input): 输入字符串。
Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于模拟一个拖拽操作。
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势。
UserWait(sleepTime): 休眠一段时间
DeviceWakeUp(): 唤醒屏幕。
PowerLog(power_log_type, test_case_status): 模拟电池电量信息。
WriteLog(): 将电池信息写入sd卡。
RunCmd(cmd): 运行shell命令。
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags):向指定位置,发送单个手势。
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags):发送按键消息。
LaunchInstrumentation(test_name,runner_name): 运行一个instrumentation测试用例。
DispatchTrackball: 模拟发送轨迹球事件。
ProfileWait: 等待5秒。
StartCaptureFramerate(): 获取帧率。
EndCaptureFramerate(input): 结束获取帧率。
完成monkey.txt脚本的编写,保存到某一路径下 切换到monkey.txt路径下 adb push monkey.txt /data/local/temp/(设备的任一路径,无规定) adb shell切换到设备下 cd /data/local/temp 切换到monkey.txt路径下 monkey -f monkey.txt -v 10 执行monkey脚本及执行次数
完成MonkeyScript的自动化Monkey测试
参考文档:http://blog.csdn.net/javaandroid730/article/details/53312555