当前位置:   article > 正文

使用Monkey进行Android手机应用的压力测试_monkey压力测试

monkey压力测试

Monkey命令】:
*** 列出已连接的设备:adb  devices 


***找到手机中正在运行的安装包名: adb shell dumpsys window | findstr mCurrentFocus 


***对指定安装包进行100次并发: adb shell monkey -p 包名 100 


***对指定安装包进行100次并发并打印日志:  adb shell monkey -p 包名 100 >路径 

 
***执行100个伪随机用户事件流,事件间隔为300毫秒:    adb shell monkey -p 包名 --throttle 300 100

 

monkey测试的优点
简单易用,方便快捷,并且理论上可以测试到所有bug,因为理论上只要次数最够多,所有事件都会发生。

monkey测试的缺点
遍历界面有限。 在monkey测试中,由于事件的随机性,使得monkey容易卡在某些简单页面,比如登陆页面这种可操作内容很少的页面。导致测试效果不佳。测试有效性大打折扣。

无法得知Bug的复现步骤。由于Monkey的随机性,如果Bug是由于事件发生的特定序列产生的,往往很难复现Bug。

路径回环。由于monkey太过随机,最后根本无法控制,很容易陷于一个页面无法出来,或者陷入某个无关紧要的地方无法出来,导致测试结果并不具有很好的意义。这也是导致遍历界面有限的原因。

解决方案
1 二次开发
对monkey进行二次开发,例如maxin,可以通过一些黑白名单控制,或者输入指定事件流,或者指定不同的测试随机模式,深度优先或者控件识别等,同时加入一些熔断机制,在一个地方执行了太多次后可以自动触发熔断并拉起。但是这样还是会进入死循环,因为仍然不能解决路径回环的问题。

2 指定测试页面
我们可以指定测试哪些页面,但是发现如果指定某几个Activity,虽然不会陷入路径回环,但随机的意义又不是那么大了,如果在几个页面进行随机,并且页面深度不是很深,那一直在这些页面测试也没有多大意义

3.分析APP特性,选择合适的方案
可以看出,测试的随机性和上述问题的解决是很难兼得的,我们必须根据我们应用的特性选择合适的方案。

对于页面功能不多,控件简单的应用,我们可以采用自定义脚本进行测试,因为在这种情况下测试所有功能也是可能的。

对于页面结构比较规律的应用,比如直播软件,每个页面结构相对固定(直播间都长一样),或者电商app(每种商品的页面大致相同)。由于随机性,所以点击不会一直在同一个地方进行点击,所以不容易一直卡在同一个页面。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/669240
推荐阅读
相关标签
  

闽ICP备14008679号