现在App普遍可以运行在后台,在用户切换到的时候唤醒到前台,一方面可以避免不必要的冷启动时间,另一方面可以持续接收服务端的推送。前后台运行时间加起来可以长达几十小时,甚至几百小时,所以对于App长时间使用的稳定性有了更高的要求,需要App稳定性测试来避免长时间运行下的偶发闪退、内存泄露、性能变差等等。通常App稳定性测试采用Monkey类的工具来长时间全自动遍历App,并捕获期间发生的稳定性问题。综合各个Monkey方案的稳定性、可配置性、执行效率等多方面考虑,首选Maxim作为Monkey遍历工具,通过Appetizer管理和配置Maxim提高方案试错效率。稳定性测试方案有以下重点,本文将一一解答:
Google 原生Monkey 是一个命令行工具,可以全自动随机点击屏幕,用来测试App稳定性等。Maxim 是 @zhangzhao_lenovo 修改自 monkey的高级版本,支持 Android 5.0-9.0
、操作非常高速 (10-15事件/秒),稳定性高,可配置。 AppetizerIO提供了对Maxim的深度集成,使得配置更方便,配置管理更简单。从Appetizer导航 -> 自动化测试 -> Maxim,最基本配置选好测试设备和测试APK即可开始测试。Maxim提供的配置有:
Maxim的遍历模式,如图
https://testerhome.com/uploads/photo/2019/60e027f7-ac15-4303-8fbd-74e48cae6fba.png!large
Activity黑白名单,选择待测APK后会出现选择,下文有截图
测试时长,可以根据时间(分钟)或者自动产生的事件数
max.xpath.actions
指定界面确定性步骤,例如登录
max.widget.black
屏蔽某些界面的某些控件或者区域,例如屏蔽广告区域
max.config
开启定时截图;调整启动等待时间
事件间延迟:两次事件间隔的时间
Maxim事件日志
数据采集和输出路径:Appetizer可以在测试过程中收集额外数据,例如Maxim日志、logcat,Battery Historian数据等等
由于Monkey本质上是无脑交互,在实际使用中,很容易由于进入了一些App场景后在里面转悠几十分钟都出不来,大大影响了遍历效率。以下经验和大家分享:
adb backup
和 adb restore
保存和复原 App数据