一、adb执行命令
1.monkey随机事件指令:
adb shell monkey -p com.tytu.enter --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v -v --throttle 300 -s 121212 --pct-syskeys 0 --pct-anyevent 0 --pct-touch 100 --pct-motion 0 100000 2>D:\ty\mk\log.txt\monkeyerror.txt 1>D:\ty\mk\log.txt\monkeyinfo.txt
| 命令 | 解释说明 |
|---|---|
| -p com.tytu.enter | 包名 |
| –ignore-crashes | 忽略崩溃 |
| –ignore-timeouts | 忽略超时 |
| –ignore-security-exceptions | 忽略安全异常 |
| -v -v -v | 详细日志 |
| –throttle 100 | 等待的时间100毫秒 |
| -s 121212 | 种子方便复现bug,建议每个版本不一样(也可以不带上,执行后去monkeyinfo.txt文件中查找种子,再次复现bug的时候再带上种子) |
| –pct-syskeys 0 --pct-anyevent 0 | 防止按音量键 |
| –pct-touch 30 | 点击事件占比30% |
| –pct-motion 70 | 移动事件占比70% |
| 10000 | 点击次数10000次 |
| 2>D:\ty\mk\monkeyerror.txt | 将错误(闪退/anr等)输出重定向到,文件地址要存在否则会报文件路径不存在 |
| 1>D:\ty\mk\monkeyinfo.txt | 将标准比如滑动点击等事件输出重定向到,文件地址要存在否则会报文件路径不存在 |
2.获取某个包的日志命令1:
adb logcat -v time -d | findstr /i “com.tytu.enter” > “D:\ty\mk\log.txt”
| 命令 | 解释说明 |
|---|---|
| -v time | 这个选项会在日志中包含时间戳 |
| -d | 这个选项会让 logcat 在输出当前的日志缓冲区后退出,而不是持续输出 |
| findstr /i “com.tytu.enter” | 这是 Windows 系统中的命令,用于过滤包含包名的日志行。/i 参数表示忽略大小写 |
| > “D:\ty\mk\log.txt” | 这部分将输出重定向到指定的文件路径 |
获取某个包的日志命令2:
adb logcat -v time -d | findstr /i “com.tytu.enter” | findstr /r /c:“^.* 16:[0-5][0-9]:[0-5][0-9]…" /c:"^. 17:[0-5][0-9]:[0-5][0-9]…*” > “D:\ty\mk\log.txt”
| 命令 | 解释说明 |
|---|---|
| findstr /r /c:“^.* 16:[0-5][0-9]:[0-5][0-9]…" /c:"^. 17:[0-5][0-9]:[0-5][0-9]…*” | 只导出16和17点的时间的日志 |
3.以上执行后会有这3个文件

| log.txt | 在手机里面的log文件夹(data/log目录下)里面导出的,包含各种响应信息。V D I W E F S 分别都有不同的涵义 |
| monkeyerror.txt | 闪退等信息 |
| monkeyinfo.txt | monkey测试时的具体操作,如点击/滑动等操作事件的详细信息 |
二、日志分析
monkeyerror.txt文件进行如下搜索,如果能搜到以下几个关键词,可以基本判断测试不通过:
| ANR问题(程序无响应) | 搜索“ANR"(application no response) |
| 闪退问题 | 搜索"crash" |
| 异常 | 搜索exception |
| 强制退出 | 搜索"force closed |
把文件直接发给开发,下面的日志可以定位到具体的崩溃的原因

log.txt文件解释:
| V (Verbose) | 详细信息,通常用于调试。这是最低优先级的日志消息,可以包含大量的详细信息 |
| D (Debug): 调试信息 | 比 verbose 优先级高,通常用于调试程序时的信息输出 |
| I (Info) | 信息消息,表明一般的、有用的信息,比如应用启动、停止等 |
| W (Warning) | 警告消息,表明潜在的问题,比如未处理的异常、资源使用不当等 |
| E (Error) | 错误消息,表明更严重的问题,比如应用崩溃、系统错误等 |
| F (Fatal) | 致命错误,表明非常严重的问题,可能导致系统或应用完全停止运行 |
| S (Silent) | 静默消息,表明该消息不应该被输出到日志中 |
把文件直接发给开发

不知道如何定位的可以直接把以上三份文件log.txt、monkeyerror.txt、monkeyinfo.txt,全部给到开发
三、adb命令停止了,手机还在执行
adb shell ps |find “monkey”
adb shell kill 进程ID

四、解决monkey乱点击的问题+回到要测试的活动页



五、报错解决

开发没有针对活动名称开放权限,可以用启动页activity来启动app:
adb shell am start -n com.tytu.enter/com.ly.home.ui.activity.LaunchActivity

1万+

被折叠的 条评论
为什么被折叠?



