每天学点新知识,心情都美好了~
前言
去年很长一段时间,都在测一款Android平板,每次到上线前,几乎每天一个版本的回归测试,回归测试可能最多有2-3天的时间,然后产品就要着急忙慌的上线,心理压力贼大。
每次回归测试,三个人重复重复测同样的功能,偶尔就会出现ANR、CRASH的问题,又不好复现,开了bug研发说解了,我们没再遇到也不敢确定是真的没了,一度很烦躁。
今年年初,开年度总结复盘会的时候,领导也提了这个问题,当时也说到稳定性测试的时间不够导致上线后用户遇到的问题我们都没测到,很影响整个公司对测试的评价。我就想了下如何加强安卓APP稳定性测试,就想到了Monkey。
其实Monkey测试我们也会测,但常常把它作为一个专项测试,基于稳定版本再跑一下,看看有没有ANR、CRASH这种严重问题。但实际测试过程中,跑那一会会其实不够的,而且每次都是快上线才拿待上线版本过一下,万一有问题也发现晚了——敏捷测试的要求就是及早发现严重问题。
我觉得应该在前期就加入稳定性测试,并增加稳定性测试时长。于是,我实验了下我的想法:在后续一个安卓APP迭代中,研发给新包时,就先用Monkey跑一下,这个过程中不需要我一直盯着,我可以去测功能用例,如果出现了ANR、CRASH问题,我可以直接查看日志、复现、再给研发提BUG。效果非常好,一来并没有占用我日常功能测试的时间;二来能及早发现严重问题;试验过程中就轻松发现了两个bug。
正文
Monkey命令其实很简单,具体一些指令的含义可以网上找找,遍地~~
下面是我的用法:
1. 打开要测试的APP,查看下它的包名
adb shell dumpsys window | findstr mCurrentFocus
2. 执行monkey命令并输出日志到本地,我设置的300ms间隔执行,模拟用户操作
adb shell monkey -p com.boe.amaze.filemanager --pct-touch 50 --pct-motion 10 --pct-appswitch 25 --pct-syskeys 15 --ignore-crashes --ignore-timeouts --ignore-native-crashes --ignore-security-exceptions --throttle 300 -v -v -v 10000 >D:\monkeyResult.txt
就这么简单!给自己加鸡腿~~