monkey学习记录

xiaoxiao2021-02-28  120

    

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

今天抽空学习了一下monkey的使用,在这里记录一下:

    一.概念介绍

         1.monkey  发送伪随机事件的工具,这个手机自带

            monkeyRunner  对monkey 命令进行封装后的api

         2.测试结果有两个我们需要关注解决的

           crash 崩溃,app崩溃了

           ANR   app响应超时

   二.开始使用

         1.环境搭建

            Android sdk 添加到环境变量(Android 开发人员可以直接使用,早就配置好了)和https://www.Python.org/downloads/release/python-2712/下载python,并将安装路径添加到path环境变量(可以没有不影响跑Monkey,但是monkeyRunner有影响)

         2.确定手机和电脑连接 ,命令  adb devices  结果如下:

            List of devices attached             xxxxx            device(说明已经连接好了)

         3.2将要测试apk安装到手机  adb install 包名   

            例如adb install  C:/Users/lenovo/Desktop/alices/camerademo/app-release.apk(全路径)

         4.压力测试   adb shell monkey 1000  monkey随机操作1000次  结果

             C:\Users\lenovo>adb shell monkey 1000              // activityResuming(com.bbk.launcher2)              // Injection Failed              // activityResuming(com.bbk.launcher2)              // Injection Failed              // activityResuming(com.vivo.easyshare)              // activityResuming(com.vivo.easyshare)              Events injected: 1000 //说明1000次跑完了,没有任何错误出现

          5.获取app包名  adb logcat | grep start  没有找到此命令(adb logcat --help中没有),没关系,包名我们肯定都知道

          6.给指定的包进行压力测试  adb shell monkey -p package 10000

          7.指定指令之间的时间间隔  adb shell monkey --throttle 1000  1000   每个指令之间时间间隔为1s               例如 adb shell monkey -p com.demo  --throttle 1000  1000            8.(bug复现方法)重复上次随机操作参数 seed参数  adb shell monkey -s 100 1000   参数为100              例如 adb shell monkey -p com.demo  -s 100 --throttle 1000  1000 

          9.触摸事件参数 设定触摸事件百分比  adb shell monkey --pct-touch 50  参数为50,也就是说百分之五十的事件为触摸事件(可以使用adb shell monkey -help 看看其他参数事件)             例如 adb shell monkey -p com.demo  --pct-touch 50 1000  百分之五十的事件为触摸事件

            其他参数如下:  [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]       [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]       [--ignore-crashes] [--ignore-timeouts]//忽略崩溃  忽略ANR  即使出现了也会继续跑(这个一般都会加上的)       [--ignore-security-exceptions]       [--monitor-native-crashes] [--ignore-native-crashes]       [--kill-process-after-error] [--hprof]       [--pct-touch PERCENT] [--pct-motion PERCENT]//触摸事件百分比   动作事件比分比       [--pct-trackball PERCENT] [--pct-syskeys PERCENT]//轨迹球事件百分比  系统事件百分比(back home 拨号键音量键)       [--pct-nav PERCENT] [--pct-majornav PERCENT]//基本导航事件,输入设备的上下左右  主要导航事件,中间键返回键菜单按键       [--pct-appswitch PERCENT] [--pct-flip PERCENT]//启动activity的事件         [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]//不常用事件       [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]       [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]       [--wait-dbg] [--dbg-no-events]       [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]       [--port port]       [-s SEED] [-v [-v] ...]       [--sort-app-list]  [--throttle MILLISEC] [--randomize-throttle]       [--profile-wait MILLISEC]       [--device-sleep-time MILLISEC]       [--randomize-script]       [--script-log]       [--bugreport]       [--periodic-bugreport]       [--delay-appswitch MILLISEC]       [--launch-app-after-launcher       [--launch-app-after-app MILLISEC PACKAGE_NAME CLASS_NAME]

 

      10.查看anr        adb shell 进入手机-->cd /data/anr/   ---->ls  ---->more traces.txt  就可以查看了,里面记录了所有应用的anr信息

       11.android studio 的terminal 下执行命令并且将测试结果保存到指定文件下:

             例如:adb shell monkey -p com.hawk.android.hicamera -s 100 --ignore-crashes --ignore-timeouts  1000000 >c:\Users\lenovo\Desktop\alice\testlog.txt  (好了,我们可以吃饭去了,回来测试结果就可以在文件中查看了)

转载请注明原文地址: https://www.6miu.com/read-34330.html

最新回复(0)