• 0
  • 0
分享
  • App压力稳定性测试之Monkey——软件测试圈
  • TIMI 2021-12-29 15:04:46 字数 2219 阅读 2379 收藏 0

一、Monkey简介

Android系统自带monkey程序,模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

Monkey的使用是在产品稳定了,没有特别多的Bug时候。用monkey去测试待测应用的稳定性、健壮性(是否会发生闪退、崩溃),手机出厂前的整机测试。Monkey犹如其猴子的译名,就是杂乱无章的乱点,通过指定执行点击次数,不断的点击安卓系统,或者指定的App,给系统产生压力。

注意:在使用Monkey之前,需要利用adb将PC端与安卓设备连接。

二、monkey常见命令

1.1、调出说明手册

命令:adbshellmonkey–help或者-h

这个命令可以查看monkey使用的说明,如下:

1.png

1.2、monkey基本命令格式:adbshellmonkey{+命令参数}[执行事件次数]

例如:adbshellmonkey-v100

命令参数例如:-p,-v,-c事件:一个点击、一个回退,等就是一个事件

1.3、命令参数

注意:所有的参数都需要放在monkey和设置的事件次数之间,参数的顺序可以调整;若带了-p,-p最好放在monkey之后。

例:

adbshellmonkey-p<包名>--throttle1000--ignore-crashes--ignore-timeouts--ignore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v-s300500

1.3.1、打印日志等级

-v:用于指定反馈信息级别(信息级别就是日志的详细程度)。

总共分3个级别;

一级:-v//默认级别,仅提供启动、测试完成和最终结果等少量信息

二级:-v–v//提供较为详细的日志,包括每个发送到Activity的事件信息

三级:-v-v-v//提供最详细的日志,包括了测试中选中/未选中的Activity信息

例如:adbshellmonkey-v-v-v100

1.3.2、指定测试App

-p<App包名>:增加App的包名时,可以只针对该App进行压力测试;

包名可同时添加多个,同时对多个App测试;

不加"-p<App包名>"时,则对安卓系统进行测试。

例:1)对一个App测试

adbshellmonkey-pcom.tecentmobileqq-v-v-v300

2)对两个App进行测试

adbshellmonkey-pcom.lemon.lemon-pcom.tecentmobileqq-v-v-v300

1.3.3、seed值

-s用于指定随机数生成器的seed值;

如果前后两次使用monkey时seed值相同,测两次monkey测试所产生的事件序列也相同。用于问题重现;

seed值相当于执行顺序,可以是300、400等。但是遇到问题,需要再次使用monkey复现问题时,seed必须相同。可以直接运行上一次的命令。

格式:

adbshellmonkey-p<包名>-v-v-v-s<seed值>[执行事件次数]

例:

adbshellmonkey-pcom.tecentmobileqq-v-v-v-s4001000

【400:seed的值,1000:执行事件次数】【复现同一问题时,将此命令重新输一遍】

1.3.4、操作时延

--throttle<毫秒>用于指定用户操作(即事件)间的时延,单位是毫秒。

例如:时延为1秒,在执行点击事件后等1秒在进行回退事件。

格式:

adbshellmonkey-v-v-v-p<包名>-s<seed值>--throttle1000[执行事件次数]

例:

adbshellmonkey-v-v-v-pcom.tecentmobileqq-s300--throttle1000500【--throttle1000指时间间隔为一秒】

1.3.5、忽略超时和崩溃

monkey测试的过程中遇到crash(崩溃)或者timeout(超时)的情况时,会停止测试。如果想在遇到crash或者timeout时继续运行指令,需要加--ignore-crashes--ignore-timeouts将crash和timeout忽略掉。

格式:

adbshellmonkey-p<包名>--throttle1000--ignore-crashes--ignore-timeouts-v-v-v-s300500

三、日志导出

Monkey执行过程中产生异常时,需要把日志导出,将异常信息找出。

1、直接将日志打印至PC端

命令:

adbshellmonkey-p<包名>-v-v-v[执行事件次数]><PC端存放目录>

可以在执行monkey过程中,直接将日志存放至PC端。

例:

adbshellmonkey-p<包名>-v-v-v200D:\log.txt

2、执行完monkey之后导出日志

命令:

adblogcat–vtime>D:\log.txt拉取的日志自带时间

3、日志定位

当日志生成后,我们需要进入日志当中查看是否有APP崩溃记录或者无响应记录。

查找关键字:

A、崩溃记录查找”CRASH”;

B、无响应记录查找”ANR”;

C、内存泄露问题搜索"GC"(需进一步分析);

D、异常问题搜索“Exception”;


作者:飞翔的猪~

原文链接:https://www.cnblogs.com/zdx20/p/12630971.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 想查看小程序的请求,使用wireshark捣鼓了半天还是无法解析微信小程序的HTTPS协议,于是使用Fiddler试试。Tools --> Options重启 Fiddler点击右边的 Filter 选项卡。然后点击 Actions --> Run Filterset Now接着点开PC微信小程序,就能看到请求列表。双击右边某一行即可展开详细信息显示请求的时间在左侧的列表区域头部任意栏上鼠标右键,选择 Customize Columns,然后Add,就会多出一列时间。需要注意的是,Fiddler 如果异常退出的话,会导致浏...
            0 0 3371
            分享
          • 很多软件测试工程师在面试的时候都会遇到考官给的各种各样的面试题,这也反应了测试工程师对企业的重要性,面试通常分为以下几个方面,由于篇幅有限,在这里就只给大家分享一些比较常见的问题。一、 自我介绍这里我不分享如何自我介绍,比我话术之类,相信大家都比我熟悉套路,这里分享几个细节1、自我介绍时需要有底气有些同学明明技术很厉害,但是一面试就紧张,一直低头,不敢直视面试官,更为紧张者都说不出话,这样的表现面试官不会觉得你是紧张,反而是觉得你是没能力的表现,所以要有底气,自信很重要。2、自我介绍时可保持微笑、语速稍慢清晰面试官可以通过你的表情、语调、语速,来判断是放松还是紧张,所以就算紧张,也要想办法保持...
            0 0 2333
            分享
          • 作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色。但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高效完成,比如:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。接口管理现状一、常用解决方案使用 Swagger 管理 API 文档使用 Postman 调试 API使用 MockJs 等工具 Mock API 数据使用 JMeter 做 API 自动化测试二、存在的问题维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大...
            14 14 1877
            分享
          •   如果你在JMeter脚本中看到这样一些符号:(.*?)(\d+),你是否会以为程序出现了乱码?拆开来看每个符号似乎都有固定的含义,组合在一起竟成了令人费解的天书。这些神秘符号究竟蕴含了哪些强大的功能,下面让我们一起来揭开它的面纱。  一、什么是正则表达式  上文提到的特定符号的组合叫做正则表达式,在JMeter工具中用来表达对字符串的一种逻辑过滤。正则表达式的功能分为“提取”和“匹配”,前者用来从字符串中获取我们想要的部分,后者用来将提取到的字符串和一个给定的字符串做比对。正则表达式的好处自然不言而喻,它实现了通过极其简单的方式达到字符串的复杂控制,同时兼具了灵活性与逻辑性。  二、如何添...
            13 13 1282
            分享
          • 摘要当前大型top企业都有非常成熟的开放平台业务,比如微信开放平台、新浪微博开放平台、支付宝开放平台等。开放平台的发展为第三方个人或企业提供了巨大的机遇。开发者想要接入各大开放平台,必须要遵从开放平台的安全机制,实现业务逻辑的前提,首先就是要实现签名验签、加密解密以及授权认证机制。本文介绍基于python的开放平台签名、认证测试体系,可以用于第三方应用的沙盒测试,同时可以应用于服务提供方相关系统的全面测试。一、引言开放平台是指大型企业将自身的数据能力、计算能力、用户体系、产品能力等资源以业务+场景+解决方案+技术的优势包装出来,通过openAPI、openSDK、openH5等形式开放给第三方...
            0 0 1821
            分享
      • 51testing软件测试圈微信