Android Monkey搭建 你不用了解的

取之于网,用之于网。本为过路人,姑且搬运中

-

一、PC端 环境搭建(基于win10专业版)

    安装JDK(非必须)

        JDK官网下载

        安装好后在电脑的环境变量中进行配置(控制面板\系统和安全\系统\高级系统设置\高级\环境变量\\编辑Path变量\新建\输入jdk路径)

        

    安装SDK

        SDK官网下载

        安置好后在电脑的环境变量中进行配置(控制面板\系统和安全\系统\高级系统设置\高级\环境变量\\系统变量\新建\输入sdk相关信息\确定)

        参照上面JDK的步骤在path变量中添加sdk的相关路径 (%ANDROID_SDK%\platform-tools;%ANDROID_SDK%\tools)


    验证

        在cmd中输入java -version,如果有显示java version 信息则验证jdk成功,如果提示没有java命令则失败,需要检查是否配置路径正确。

        在cmd中输入adb devices,如果提示没有adb命令则失败,其余提示则成功。


二、Device端 (Android手机)

    获取Monkey对象

        通过adb shell pm -l(也可以通过adb shell + pm list package)获取设备中所有的package包名

    简易开始

        从上面的包名中选出你想要的对象,将其放入txt文件中,每个包名以行隔开

        将此txt文件push到data/下(push目录可自定义)

        执行adb shell monkey --pkg-blacklist-file /data/xxx.txt --throttle 1000 3600 > log.txt

        #--pkg-blacklist-file 参数后面的文件为白名单文件,也就是系统中除开这个文件里列出的包名以外均为要跑monkey的包。

        #--pkg-blacklist-file 参数后面的文件为黑名单文件,也就是系统中只有这个文件里列出的包要跑monkey。两者不能同时出现。

        #--throttle 参数后面为事件频率,单位ms,即每次事件的间隔。

        #3600 表示多少次事件,此值随意。此值X上面的频率,即可得出monkey要跑多久,按上例monkey要跑1000MS X 3600为1小时

        #> 为定向,上例是定向到PC上当前目录的log.txt文件中。即可心> c:\log.txt到PC上,也可以> /data/log/tt.txt到设备中。

        #1> 2> 分流定向,1> log.txt表示标准流输出到PC的log.txt, 2 > /data/log/log.txt 表示异常流输出到设备的/data/log/log.txt文件中。


参数大全

    调试类

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

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

        --ignore-crashes:忽略崩溃

        --ignore-timeouts:忽略超时

        --ignore-security-exceptions:忽略安全异常

        --kill-process-after-error:发生错误后直接杀掉进程

        --monitor-native-crashes:跟踪本地方法的崩溃问题

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

    约束类

        -p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;

        -c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;

    一般类

        -s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s200

        --throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle100

        --pct-touch:指定触摸事件的百分比,如:--pct-touch5% 

        --pct-motion (滑动事件)

        --pct-trackball (轨迹球事件) 

        --pct-nav (导航事件 up/down/left/right)

        --pct-majornav (主要导航事件 back key 、 menu key)

        --pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)

        --pct-appswitch (activity之间的切换)

        --pct-anyevent(任意事件)

    打印类

        --help:打印帮助信息

        -v:指定打印信息的详细级别,一个-v增加一个级别, 默认级别为0。最高为2,即-v -v -v


三、 便利化

使用bat脚本

#verson@auto

#20200630

echo off

rem set utf-8 page

chcp 65001

rem get time

set cur_month=%date:~8,2%

set cur_day=%date:~5,2%

set cur_date=%cur_month%-%cur_day%

set cur_time=%time:~0,8%

set monkey_dir=mk%cur_date%

set monkey_pm_file=pmlist.txt

set whitelist_file=whitelist.txt

set whitelist_bk_file=whitelist_backup.txt

set log_file=log.txt

echo monkey_dir is %monkey_dir%

echo monkey_pm_file is %monkey_pm_file%

rem entry workspace /Desktop/monkey

cd Desktop

mkdir monkey

cd monkey

rmdir %monkey_dir%

mkdir %monkey_dir%

cd %monkey_dir%

rem get all package

del /f %monkey_pm_file%

adb shell pm -l > %monkey_pm_file%

rem interaction

if not exist %whitelist_file% (

echo #verson@auto tips > %whitelist_file%

)

echo If u need hide some app, please take them into whitelist.txt!

echo If u Done, Please click any key to continue!

pause

echo all package in!

adb push %whitelist_file% /data/

cp %whitelist_file% %whitelist_bk_file%

echo lets go!

adb shell monkey --pkg-blacklist-file /data/%whitelist_file% --throttle 700 -v -v -v 9999999 > %log_file%


使用python脚本

待续

使用shell脚本

同上

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。