Android-APP测试之monkey

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报错信息

Android-APP测试之monkey_第1张图片
Paste_Image.png

3

在Monkey测试过程中可能会出现程序崩溃(CRASH)和程序无响应的情况(ANR),要将测试的log信息获取到,从而解决bug

测试过程中出现crash现象时,根据seed值来完成bug的复现:adb shell monkey -p (包名) -s (seed值) -v 1000

Android-APP测试之monkey_第2张图片
Paste_Image.png

测试过程中出现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

你可能感兴趣的:(Android-APP测试之monkey)