某些移动APP业务线多,流程复杂,且产品迭代速度快,在回归测试中涉及到大量用例,工作量大,解决这个问题的一个可行方法是使用自动遍历测试,可以降低用例维护成本,尽可能的自动化覆盖回归业务。
自动遍历工具
- google android原生monkey、 app crawler
- 百度 smartmonkey
- 腾讯 newmonkey
- smart_monkey
- macaca的NoSmoke
- 头条的 zhangzhao maxim
- seveniruby appcrawler
下面介绍android原生monkey工具
Android monkey
简介
monkey是开发用来进行压力测试的工具,测试activity的性能。monkey向应用程序发送伪随机的用户事件流(如按键、触屏、滑动等操作),对应用程序进行随机操作,它的这种特性可以用来做自动遍历测试。
Android SDK提供了Monkey工具,使用adb shell monkey
运行
常用Monkey命令
对所有包随机操作100次
1 | adb shell monkey 100 |
对指定包随机操作100次
1 | adb shell monkey -p com.xueqiu.android 100 |
时间种子,如果想重现一样的测试路径,两次测试的-s参数应相同
1 | adb shell monkey -p com.xueqiu.android -s 20 100 |
打印详细日志
1 | adb shell monkey -p com.xueqiu.android -vv -s 20 100 |
可以看到对雪球app的操作日志,其中
- 0:触摸事件百分比,参数—pct-touch
- 1:滑动事件百分比,参数—pct-motion
- 2:缩放事件百分比,参数—pct-pinchzoom
- 3:轨迹球事件百分比,参数—pct-trackball
- 4:屏幕旋转事件百分比,参数—pct-rotation
- 5:基本导航事件百分比,参数—pct-nav
- 6:主要导航事件百分比,参数—pct-majornav
- 7:系统事件百分比,参数—pct-syskeys
- 8:Activity启动事件百分比,参数—pct-appswitch
- 9:键盘翻转事件百分比,参数—pct-flip
- 10:其他事件百分比,参数—pct-anyevent
事件百分比
1 | adb shell monkey -p com.xueqiu.android --pct-touch 10 1000 |
其他事件类似
时间延迟
1 | adb shell monkey -p com.xueqiu.android --throttle 5000 100 |
每次随机事件的时间间隔5000毫秒
常用事件
- —pct-touch:触摸事件,比如点击
- —pct-motion:动作事件,比如滑动(直线)
- —pct-trackball:轨迹事件,比如移动+点击,曲线滑动
- —pct-majornav:主要导航事件,比如回退按键、菜单按键:
monkey 使用实例
- 启动模拟器或者连接真机
- 自动遍历雪球APP
随机操作100次,触摸事件百分比50%,每次随机事件的时间间隔1s
1 | adb shell monkey -p com.xueqiu.android -vv --pct-touch 50 --throttle 1000 100 |
本文标题:App自动化测试 | 自动遍历测试之Monkey工具
文章作者:hiyo
文章链接:https://hiyongz.github.io/posts/appium-automatic-traversal-test-monkey/
许可协议:本博客文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请保留原文链接及作者。