模拟器下载安装【用于monkey测试】

若想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可连接模拟器
输入该命令之后,回车出现connected to 127.0.0.1:7555该命令,则表示连接成功
在这里插入图片描述

7.然后再次在命令窗口输入adb devices查看mumu是否已连接成功
在这里插入图片描述
显示127.0.0.1:7555 device表示连接模拟器成功

8.可在网上下载某个安装包
在这里插入图片描述
将这个apk安装到模拟器上
用命令adb install F:\monkey\202110181624-debug.apk在DOS窗口安装到模拟器上
在这里插入图片描述
如果最后提示Success则表示安装成功
9.
如果在程序测试过程中,开发那边改完一阶段bug或一个严重程度级别很高的bug,我们在安装新的apk的时候不用去卸载原来的apk,只要重新安装的时候加上‘-r’参数覆盖掉原apk文件就好
adb install -r F:\monkey\202110181624-debug.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 测试结束


版权声明:本文为lovelygirlyuzhu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。