Monkey
monkey是安卓的命令行工具,可以运行在虚拟机或者实际设备中。
monkey的目的就是为了测试app的稳定性,看App是否会崩溃
monkey的特点:只能对程序包进行测试,无法对源码进行测试;moneky的事件数据流是随机的,无法自定义;可以对monkey的测试对象,事件类型,频率,数量等进行自定义。
App测试环境搭建:
- 安装JDK,安卓SDK,配置Java和Android环境
- 安装虚拟机或者准备真实安卓设备
- 将待测试的程序包安装到虚拟机或者设备上
- 通过adb devices连接设备或者虚拟机
- 打开安装包
- 通过adb shell monkey命令对app进行测试
App测试monkey命令
安装应用 adb install
对设备中的所有App进行随机测试:
adb shell monkey 100 执行monkey测试100次
指定一个或者多个包进行测试:
adb shell monkey -p [package] 10 对指定package进行测试
package包名的查看:
adb logcat|findstr Displayed
随机数种子:seed值相同的话,执行的事件序列也是一样的
adb shell monkey -p [package] -s [seed值] 100
用户延迟操作: 300执行一个操作的时间 100是执行事件次数,不指定300这个操作时间的话,monkey就会尽快的去执行操作
adb shell monkey -p [package] --throttle 300 100
设置触摸事件的百分比: - - pct-touch [百分比数值] 剩下的50%由monkey随机设置事件
adb shell monkey -p [package] - - pct-touch 50 -v 100
设置手势操作的百分比
adb shell monkey -p [package] - - pct-motion 50 -v 100
设置 忽略崩溃和忽略超时
adb shell monkey -p [package] --ignore-crashes --ignore-timeouts 100
指定事务的百分比:触摸和移动各50%
adb shell monkey -p [package] -- pct-motion 50 --pct-motion 50 -v 100
App测试日志定位
- 日志位置:adb shell monkey 100 >路径
- 查看日志关键字
A、崩溃记录查找”CRASH”;
B、无响应记录查找”ANR”;
C、内存泄露问题搜索"GC"(需进一步分析);
D、异常问题搜索“Exception”; - 日志详细级别:
Level 0: adb shell monkey -p 包名 -v 30 //仅提供启动提示、测试完成和最终结果等少量信息;
Level 1:adb shell monkey -p 包名 -v -v 30 // 提供较为详细的日志,包括每个发送到Activity的事件信息;
Level 2:adb shell monkey -p 包名 -v -v -v 30 // 最详细的日志,包括了测试中选中/未选中的Activity信息 - 抓取日志 adb logcat (-v time 按照时间打印日志)
开始抓取日志,输入如下命令把日志写入到文件中:adb logcat -v time > D:\Logcat\logcat.log - 日志级别的过滤
查看10条级别为错误(Error)的日志 adb logcat 10 *:E > D:\Logcat\logcat.log- V 详细verbose级别
- D debug级别
- I info级别
- W warning级别
- E error级别
- F fatal 严重级别
- S 无记载
logcat
logcat是安卓的命令行工具用于抓取日志。
用法 adb logcat
shell 用法 logcat
logcat 的缓冲区
1)Radio:输出通信系统的log
2)System:输出系统组件的log
3)Event:输出event模块的log
4)Main:所有java层的log,遗迹不属于上面3层的log
获取缓冲区 adb logcat -b radio
logcat的tag和优先级
//过滤TAG为ActivityManager输出级别大于I的日志与TAG为MyApp输出级别大于D的日志
adb logcat ActivityManager:I My App:D *:S
命令参数
//将缓冲区的log打印到屏幕并退出
adb logcat -d
//清除缓冲区log(testCase运行前可以先清除一下)
adb logcat -c
//打印缓冲区大小并退出
adb logcat -g
//输出log
adb logcat -f /data/local/tmp/log.txt -n 10 -r 1
格式化输出
adb logcat -v [输出格式]
brief 显示优先级/标记和过程的PID发出的消息(默认格式)
process 只显示PID
tag 只显示优先级/标记
raw 显示原始的日志消息,没有其他元数据字段
time 调用显示日期、时间、优先级/标签和过程的PID发出消息
threadtime 调用显示日期、时间、优先级、标签遗迹PID TID线程发出的消息
long 显示所有元数据字段与空白行和单独的消息
内容收集自网络,如果侵权,请联系我删除