monkey 压力测试报告分析内容

  一、日志结尾:

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。

(如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。)

二、日志内容分析:

一般测试结果分析-搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.遇到了未知错误或异常 :Error或Exception

4.应用程序没有正常启动或无法正常启动,monkey测试被迫中止:  aborted 


monkey测试建议:
1、 尽量关闭所有网络开关(WiFi及数据连接),以及莫名消耗流量,除非测试过程必须要求互联网。
2、开启安全设置下的未知来源。
3、手机连接电源充电,模拟器不在此讨论范围。
4、测试前运行一边手机上方带有的首次提示的说明,如输入法,文件窗口,apk提示语等。
 

一般的分析步骤:
1、先找到出现错误的位置
2、查看出现错误之前2个switch之间的activity
3、手动执行事件,复现问题
4、若以上步骤还不能找出,产生错误时,有会seed值,输入相同的seed值,重新按照之前命令跑monkey

Sleeping–Sleeping for 500
milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次 ,就代表一个事件。


 三、重现问题

Monkey测试出现错误后,一般的查错步骤为以下几步:
1.找到是monkey里面的哪个地方出错
2.查看Monkey里面出错前的一些事件动作,并手动执行该动作
3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样

 四、运行机制

1). adb shell monkey的运行机制: 实际上是执行手机中/system/bin/monkey这个脚本;
2). Monkey事件注入机制:Monkey注入系统事件是通过 framework 层的 hidenApi (如:activemanager,inputmanager,windowmanager) 获取系统服务。
  Monkey中有11种事件,这些事件在MonkeyEventSource中对事件之间的比例进行设置。Monkey事件根据类型比例生成事件队列,循环查找事件。
   a.触摸事件(inputmanager):包括屏幕以及物理键的触摸,滑动,点击事件。
   b.Activity事件(activemanager):是指我们调用Android系统组件的事件。
   c.Window事件(windowmanager):是指操作Window的事件,例如转屏。
3).Monkey核心类
   a. Monkey.java, 程序的入口,根据参数选择合适的MonkeyEventSource,并适时触发MonkeyEvent;
   b. MonkeyEventSource.java, MonkeyEvent的工厂,是一个接口;
   c. MonkeyEvent.java,各种事件的具体实现。

 

Monkey 的实现方式很简单:

 

 

 

posted @   hello_tree  阅读(238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示