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

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

作者: loveyena | 来源:发表于2022-05-10 11:28 被阅读0次

    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 <percent> 类型,百分比为百分之百,也就是纯随机事件。③如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。

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

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

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

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

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

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

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

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


    --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在指定页面执行

          本文链接:https://www.haomeiwen.com/subject/ezklurtx.html