安卓monkey命令解析及如何让adb在指定页面执行

1.有adb环境

2.手机打开开发者选项usb调试,连接数据线,使用adb devices查看设备

3.使用adb install xx.apk 安装应用,打开应用,使用adb shell dumpsys window | findstr mCurrentFocus查看包名,adb logcat | findstr START 打开应用,可以看到包名和当前页名

monkey命令解析

-p 包名 用以指定包名,多个包,使用多个-p 包名 来指定

-v 日志级别,1个表示0级,只记录启动 测试完成 测试结果等信息,2个表示1级 进一步记录逐个发送到Activity的事件,3个表示2级,进一步记录测试中被选中的或未被选中的Activity

-s

在每次执行完Monkey命令之后,从输出里可以看到当前的seed值,只要通过-s参数后指定相同的seed,就可以重复刚才的操作。

--throttle<毫秒>

事件之间加入延时操作,一般业内标准是每秒操作2-3次。即:--throttle 200到 --throttle 300

--ignore-crashes

忽略程序崩溃,对于重新执行的 Monkey 命令-s参数设置的随机数seed值将不会生效。

--ignore-timeouts

忽略程序超时。【这里的超时并不是网络超时或者接口返回超时,而是程序相应超时导致的ANR】

--ignore-security-exceptions

用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。

--kill-process-after-error

应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程。

--monitor-native-crashes

用于指定是否监视并报告应用程序发生崩溃的本地代码。

--pct-{事件类别}{事件类别百分比}

虽然Monkey测试是随机事件,但是我们可以指定事件的类型。【注意】:①所有指定事件的数值加起来不能超过100。②不做任何指定时,默认为--pct-anyevent 类型,百分比为百分之百,也就是纯随机事件。③如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。

--pct-touch :指定触摸事件的百分比。

--pct-motion :指定滑动事件的百分比。

--pct-trackball :指定轨迹球事件的百分比。

--pct-nav :指定导航事件中,up、down、left、right等事件的百分比。

--pct-majornav :指定导航事件中,back、menu等事件的百分比。

--pct-syskeys :指定系统按键的百分比,包括HOME、Back、音量等。

--pct-appswitch :指定Activity之间切换的比例。

--pct-anyevent :指定任意事件的百分比。


--hprof

指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项

①--dbg-no-events:初始化启动的activity,但是不产生任何事件。

⑧--wait-dbg:知道连接了调试器才执行monkey测试。

adb shell monkey -help 查看Monkey测试的其他命令行

日志输出

adb shell monkey -p 包名 -v 300 >e:\text.txt 后面内容会被覆盖

adb shell monkey -p 包名 -v 300 >> e:\text.txt 后面内容追加输出

退出monkey测试

adb reboot 重启手机

查找monkey进程adb shell ps | grep monkey(windows下用findstr代替grep) 通过adb shell kill 进程id 杀死进程

再次查看adb shell ps | grep monkey进程是否已经不在

测试结果分析

错误重现,找到出错的地方,查看往前的一些事件,手动执行该事件

如果手动无法复现,使用seed值重现

在log中通过关键字查询:当Monkey命令执行过程中遇到错误时,会输出对应异常信息,关键字查询:应用程序无响应(ANR)、崩溃(CRASH)、其他问题(Exception)、“Force Close”


参考

如何让adb在指定页面执行

1.可在执行monkey命令之前,先执行禁用通知栏的命令

adb shell settings put global policy_control immersive.full=*

解禁命令:adb shell settings put global policy_control null

2.设置白名单页

具体参考:https://blog.csdn.net/joey_2018_/article/details/88607549

你可能感兴趣的:(安卓monkey命令解析及如何让adb在指定页面执行)