Monkey基础

Monkey简介(猴子测试)

●monkey是运行在你的程序模拟器或设备,并生成用户事件的伪随机流,例如点击,触摸,或手势,以及若干系统级事件。
●可以使用monkey对应用程序进行压力测试、稳定性测试,不做功能测试
●Monkey 测试所有的事件都是随机产生的,不带任何人的主观性。
●Monkey测试的时候,需要长时间、大量的操作事件。.

Monkey的特征

●测试的对象仅为应用程序包,有一-定局限性
●Monkey测试使用的事件随机流是随机的,不能进行自定义
●可对MonkeyTest的对象,事件数量,类型,频率等进行设置

运行结束的特征

● Monkey所有的事件运行结束
● APP崩溃,闪退
●APP死机、无响应
●人工干预,强制结束

Monkey的使用

在这里插入图片描述
在这里插入图片描述

1、首先检测android真机/模拟器是否已经连接: adb devices
2、然后选取一个设备来进入shell: adb shell -s 设备名,或如果只有一个设备,可以写adb shell

● 查看应用程序列表: pm list packages

●参数-p
用于约束限制,用此参数指定-个或多个包(Package, 即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

●不指定包: adb shell monkey 100

●指定一个包: adb shell monkey -p com.htc.Weather 100 说明: com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)

●指定多个包: adb shell monkey -p com.htc.Weather -p com.htc.pdfreader -p com.htc. photo.widgets 100

●参数-v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

●级别一 :
示例:adb shell monkey -p com.htc.Weather -v 100
( 说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息)
●级别二 :
示例:adb shell monkey -p com.htc.Weather -v -v 100
(说明提供较为详细的日志,包括每个发送到Activity的事件信息)
●级别三 :
示例:adb shell monkey -p com.htc.Weather -v -v -v 100
(说明最详细的日志,包括了测试中选中/未选中的Activity信息)

●参数-s
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

●Monkey测试1: adb shell monkey -p com.htc.Weather -s 10 100
●Monkey测试2: adb shell monkey -p com.htc.Weather -s 10 100
●两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即-一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;这个-s就是指定了操作的顺序!

●参数- -throttle
用于指定用户操作(即事件)间的时延,单位是毫秒;
示例: adb shell monkey -p com.htc.Weather --throttle 3000 100

●参数- -pct
adb shell monkey -p com.tmall.wireless -v --pct-touch 50 --pct-trackball 30 --throttle 300 100
(说明:用monkey测试天猫的这个包触摸操作(-touch)百分之50,轨迹球操作(-trackball)百分之30,其它操作百分之20,总共进行100次随机点击,事件之间间隔300ms)

Monkey测试中,APP 异常情况的分析出现异常情况的原因:

1)随机的各种操作,没有任何逻辑和流程;
2)长时间的操作,功能和界面之间互相调用,消耗大量的系统资源;
3)操作之间的时间间隔太短会造成异常。

常见的异常及对应策略:

1、NullPointerExcoption (空指针异常)。对比APP运行日志记录,分析代码找出原因。
2. Debug 异常(IllegalStateException). 一般常见于程序代码本身的错误。
3.低内存异常(OutOfMemerfror)。 内存空间不足的时候。
4、操作无响应异常(TimerOut). 频繁的操作导政某些功能无响应。
5、系统重启异常(RostarSytem)。 可能是误操作,也可能是系统崩溃。
6、运行时异常(RunTimeException)。 一般在无响应之后。
7.数据读取异常(RoadExcoption)。 数据库数据读取异常。
8、非法参数异常(legalArgumentException). 方法调用时参数传递非法。

在使用Monkey测试的时候,如何更好的提交bug:

1、首先要阅读和分析APP测试的日志。找出问题(哪里有问题)。
2.结合提交bug的流程。将所需的日志内容截图,原文照搬。
3.如果能力或者权限足够,可以通过阅读代码的方法,进行bug的追根。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值