一、app环境搭建教程
(包含文档教程和Android SDK) 自取链接:https://pan.baidu.com/s/1O_R7dNQ31kBQC6TX2bMvKA 提取码:3jt3 以上操作正常后说明你的测试环境已经成功部署 以上文档教程适用与模拟器 以下是我用真机进行的monkey测试
二、使用真机进行monkey测试
1、手机相关配置
- 进入手机设置找到版本号,多次点击版本号,直到出现‘您现在处于开发者模式!’
- 开启USB调试
- 使用USB连接电脑
2、连接电脑
1、使用adb devices 命令查看电脑手机是否相连; 下图表示已连接 2、打开app 2.1、获取当前app包名:adb shell dumpsys window | findstr mCurrentFocus 以上方法适用于已安装应用
2.2、其他方法 1.adb shell pm list package 查看手机上所有的安装包
2.adb shell pm list package -3 查看第三方安装包
3.adb shell pm list packages -s 查看系统的包
4.adb shell pm list packages -e “要搜索的内容” 查看启动包中搜索的包
3、输入monkey命令
adb shell monkey -v -v -v -s 20211202 --ignore-crashes --ignore-timeouts --monitor-native-crashes --ignore-security-exceptions --throttle 500 -p xxx.xxx.xxx 100000>D:\monkey_log\monkey_20211202.log
输入命令后按回车,monkey就自动运行啦!
3.1、命令详解:
adb shell monkey 执行手机中/system/bin/monkey这个脚本
-v -v -v 提供最详细的日志,包括了测试中选中/未选中的Activity信息()
-s 20211202 指定伪随机数生成器的seed值(用于回归测试和复现bug)
--ignore-crashes 忽略闪退(monkey执行过程中有该情况可忽略不影响运行)
--ignore-timeouts 忽略超时(用法同上)
--monitor-native-crashes 用于指定是否监视并报告应用程序发生崩溃的本地代码
--ignore-security-exceptions 忽略许可错误
--throttle 500 事件之间的时间间隔(1000毫秒=1秒)
-p xxx.xxx.xxx 获取到的包名
100000 执行事件的总次数
>D:\monkey_log\monkey.log 将日志文件保存在本地路径下
Event percentages(事件百分比):(各个事件百分比之和为100%)
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
以上命令我没有具体指定
4、查看日志
4.1、monkey运行完成后日志末尾会显示 Monkey finished 这里以执行10次为例
4.2、在日志中看问题:
在日志中搜索crash、Exception,anr关键字
1.程序无响应的问题:在日志中搜索 ANR
2.崩溃问题搜crash
3.崩溃问题:在日志中搜索 “Exception” ,
常见的Java异常:javaException(runtimeException):
NullPointerException-空指针引用异常
ClassCastException-类型强制转换异常。
IllegalArgumentException-传递非法参数异常。
ArithmeticException-算术运算异常
ArrayStoreException-向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException-下标越界异常
NegativeArraySizeException-创建一个大小为负数的数组错误异常
NumberFormatException-数字格式异常
SecurityException-安全异常
UnsupportedOperationException-不支持的操作异常
4.3、获取Android崩溃日志
1、清除日志
adb logcat -c
2、然后再次运行崩溃操作,再抓取日志
3、存储日志到本地目录下
adb logcat -d *:W > D:\monkey_crash.log
这个日志文件包含了所有打印的日志,需要自己筛选下崩溃日志,比如搜索 begin、crash、Exception
4、为了更精确的筛选日志,可以加入筛选条件
adb logcat -d *:W grep “包名” >monkey_crash.log
4.4、复现bug
1.找到是monkey里面的哪个地方出错
2.查看Monkey里面出错前的一些事件动作,并手动执行该动作
3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
最后将崩溃日志提给开发
|