Windows+安卓adb+monkey抓日志

一.配置安卓sdk,环境变量

二.cmd--

输入:adb devices 检查是否连接手机

输入:adb shell pm list packages -e 查看启动程序包

输入:adb logcat *:E time>D:log.txt 打印日志

三:monkey 使用 查看anr 问题

输入:adb shell monkey -p com.huaqin.mall -v -v -v 10000 time>D:log.txt

版本高的 定位anr 获取anr线程堆日志文件

输入:adb shell

输入:adb bugreport 从手机上把日志文件下载到电脑

版本低的

输入:adb pull /data/anr/traces.txt.bugreport D:/ANR

遇到的问题,随机事件,音量、wifi ,顶部状态栏点击

adb shell settings put global policy_control immersive.full=* 关闭手机的状态栏
adb shell settings put global policy_control null 开启手机状态栏

我的:adb shell monkey -p com.huaqin.mall --pct-touch 90 --pct-majornav 10 --pct-syskeys 0 --throttle 10 -v -v -v 10000 time>D:log.txt

执行完后底部出现 seed 值

回归测试:seed 1572269857828

adb shell monkey -p com.huaqin.mall --pct-touch 90 --pct-majornav 10 --pct-syskeys 0 --throttle 10 -s 1572269857828  -v -v -v 10000 time>D:log.txt

ps | grep monkey

 

 

上图中可以看到,有monkey进程在后台运行,id为15248,然后我们可以运行kill命令,来杀死该进程。执行如下命令:

kill pid(如上图中的15248)即可。

adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes  --ignore-timeouts--throttle 250 -s 2  -v -v -v 5000000
一.monkey测试命令有哪些选项?

1:常用选项

--help:打印帮助信息
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。-v -v -v 为最详细日志。

2:事件选项

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200
--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100
--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:
--pct-motion <percent> (滑动事件)

--pct-trackball <percent> (轨迹球事件)

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

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

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

--pct-appswitch <percent> (activity之间的切换)

--pct-anyevent <percent>(任意事件)

3:约束选项

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

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

4:调试选项

--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。
二.一个完整的monkey语句?
adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes  --ignore-timeouts--throttle 250 -s 2  -v -v -v 5000000
触摸事件占30%,忽略crash和超时,每个事件间隔250ms,输出最详细日志,执行500万次
三.如何保存不连着电脑跑monkey?
1.输入命令进入shell环境:adb shell
2.输入monkey语句执行:monkey –p com.android.mms –s 100 --throttle 1000 –v –v –v 15000 > /mnt/sdcard/monkey_test.txt&
四.如何跑多个apk的monkey?

黑名单:执行除了黑名单中以外的apk;白名单:只执行在白名单中的apk。
黑名单的设置方法:
a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.android.mms;如果有多个应用程序不想被执行,则在文件中添加多个包名,注意包名与包名之间均用回车键。
b.将blacklist.txt的文件导入到手机的/data目录下,然后在执行monkey测试的时候使用--pkg-blacklist-file参数再加上blacklist文件的存储路径,其他的参数设置则和测试单一apk没有区别。
白名单的设置方法:
白名单的设置方法和黑名单的设置方法基本一致,只是在创建txt文档的时候,文件的命令应为whitelist。在执行monkey的时候,只执行白名单中的应用。

例子:
monkey –pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数> C:\blacklist_test.txt //执行黑名单以外的应用
monkey –pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数 > C:\whitelist_test.txt //执行白名单的应用

Application  Crash常见原因如下:(都是常见的java异常)

1、        NullPointerException:空指针异常。

2、        SQLException:操作数据库异常类。

3、        ClassCastException:数据类型转换异常。

4、        NumberFormatException:字符串转换为数字类型时抛出的异常。

5、        ClassNotFoundException 异常的解释是"指定的类不存在"。

6、        ArithmeticException 这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常。

7、        ArrayIndexOutOfBoundsException 数组越界异常

8、        IllegalArgumentException 这个异常的解释是"方法的参数错误"

9、        IllegalAccessException 这个异常的解释是"没有类访问权限"

10、     ArrayStoreException 错误对象存储到数组
Windows使用

gradlew assembleDebug 测试版打包APK

gradlew assembleRelease 线上版打包APK

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值