若想monkey测试,前提是将adb工具下载安装成功。在DOS命令窗口输入adb version,出现如下类似的就表明安装成功
1.下载mumu模拟器 下载mumu的网址:http://mumu.163.com/ 下载的是Windows64位,安卓版测试的模拟器 2.下载安装,可自行更换路径安装。
3.安装mumu成功之后,打开该mumu模拟器 4.win+r打开运行窗口,输入cmd打开DOS命令窗口
5在命令窗口,输入adb devices显示,如下,说明模拟器没有连接成功
6.在命令窗口输入adb connect 127.0.0.1:7555可连接模拟器 7.然后再次在命令窗口输入adb devices查看已连接的设备 显示127.0.0.1:7555 device表示连接模拟器成功
8.可在网上下载某个安装包 将这个apk安装到模拟器上 用命令adb install F:\monkey\202110181624-debug.apk在DOS窗口安装到模拟器上 如果最后提示Success则表示安装成功 9. 如果在程序测试过程中,开发那边改完一阶段bug或一个严重程度级别很高的bug,我们在安装新的apk的时候不用去卸载原来的apk,只要重新安装的时候加上‘-r’参数覆盖掉原apk文件就好
10.在电脑F:\monkey这个目录下创建一个目录,名为monkey_log,用来保存monkey测试产生的日志文件,需要用日志文件进行分析问题。
如下是开始执行monkey测试
11、执行monkey测试,命令如下(操作事务都是随机的) 包名后面加上4个参数,-s是seed值,然后在-s后面的两三个参数分别是时间间隔、忽略崩溃和超时。 -p: 指定包(指定测试的app) –throttle: 两个事务间的时间间隔 -v -v -v: 日志输出等级3个v最高,1个v最低,即等级越高随机点击的事件越详细 2000: 操作事务次数2000次
F:\monkey\monkey_log\xxx.txt: 产生的日志文件保存到xxx.txt文件里面
12.卸载apk需要先找到包名(卸载apk文件,或者直接在模拟器中卸载)
可先通过下面的命令列出所有的包,包都是以‘com’开头的
如上面安装的包名是com.android.pacprocessor
卸载com.android.pacprocessor包,命令如下
出来‘Success’说明卸载成功。【如上命令我还没回车运行】
问题定位分析
从日志中搜索:exception、crash、Fatal、ANR 这4个关键词。monkey的错误一般都是这4个,异常,崩溃,致命,程序终止。找到错误关键后,可以分析下错误发生前的操作步骤,便于手动重现错误。也可以将测试日志给安卓开发看,便于更快更准的定位问题。
测试执行后打开测试日志,发现开头会有一个seed值,下次执行monkey测试的时候可以带上这个参数‘-s 1599897777753’,那么下次执行的时候会跟上一次的执行事务一样 :Monkey: seed=1599897777753 count=1000
测试日志中Event percentages事务百分比分别是什么事务 不同版本的Android SDK的Event percentages种类数和顺序是不一样的!
0:–pct-touch//touch events percentage触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件) 1:–pct-motion//motion events percentage手势事件百分比(手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯 2:–pct-pinchzoom//pinch zoom events percentage二指缩放百分比,即智能机上的放大缩小手势操作 3:–pct-trackball//trackball events percentage轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样) 4:–pct-rotation//screen rotation events percentage屏幕旋转百分比,横屏竖屏 5:–pct-nav//nav events percentage”基本”导航事件百分比(导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有 6:–pct-majornav//major nav events percentage”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键) 7:–pct-syskeys//system(key) operations percentage”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制) 8:–pct-appswitch//app switch events percentage启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法 9:–pct-flip//keyboard flip percentage键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回 10:–pct-anyevent//anyevents percentage其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。
测试执行结束后,打开日志最后查看最后5行信息 Events injected: 2000 //执行事务次数:2000次
:Sending rotation degree=0, persist=false //发送旋转度=0,持续时间=false
:Dropped: keys=1 pointers=1 trackballs=0 flips=0 rotations=0 //丢弃的数据包 :关键点=1,个指针=1,个轨迹球=0个,翻转=0个,旋转=0
Network stats: elapsed time=293199ms (0ms mobile, 0ms wifi, 293199ms not connected)
//网络统计信息:运行时间=293199ms(手机 0ms,wifi 0ms,未连接 293199ms)
// Monkey finished //monkey 测试结束
|