monkey:压测命令及解析(四)

执行命令

adb uninstall com.xxx

adb install D:\apk\xxxx.apk

start "C:\Windows\System32\cmd.exe" echo %date% %time:~0,8%

adb shell monkey -p com.xxx --throttle 1000 --pct-touch 25 --pct-motion 20 --pct-pinchzoom 5 --pct-trackball 5 --pct-rotation 5 --pct-nav 10 --pct-majornav 10 --pct-syskeys 10 --pct-appswitch 10 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 10000 >D:\apk\monkeyLog.txt

start "C:\Windows\System32\cmd.exe" echo %date% %time:~0,8%

常用属性

进入模拟器    adb -e shell,如  adb -e shell monkey -p com.topevery.ldt 1000 --ignore-crashes --ignore-timeouts (模拟器容易crash)

进入手机       adb -d shell,如  adb -d shell monkey -p com.topevery.ldt 1000 --ignore-crashes --ignore-timeouts

不指定包:adb shell monkey 1000 

指定包:adb shell monkey -p com.topevery.ldt 1000

设置指令之间的时间间隔:adb shell monkey -p com.topevery.ldt  --throttle 1000  1000  (1000毫秒,即1秒)

(bug复现方法)重复上次随机操作参数 seed参数:adb shell monkey -p com.topevery.ldt  -s xxxx --throttle 1000  1000   

触摸事件参数百分比设定:adb shell monkey -p com.topevery.ldt --pct-touch 50 1000 

        (0):触摸事件百分比,即参数--pct-touch   ---> 即在某一位置的Down-Up(手指的放下和抬起)。

       (1):手势事件百分比,即参数--pct-motion  ---> 以Down开始,Up结尾的move动作事件。

       (2):缩放事件百分比,即参数--pct-pinchzoom  ---> 

       (3):轨迹球事件百分比,即参数--pct-trackball  --->  即单纯的Move。

       (4):屏幕旋转事件百分比,即参数--pct-rotation  ---> 

       (5):基本导航事件百分比,即参数--pct-nav  --->  即来自于方向输入设备的上下左右操作。

       (6):主要导航事件百分比,即参数--pct-majornav  ---> 即Navigation Bar的确认,菜单,返回键等。

       (7):系统事件百分比,即参数--pct-syskeys  ---> 即系统保留按键,如HOME键,BACK键,拨号键,挂断键,音量键等。

       (8):activity启动事件百分比,即参数--pct-appswitch  --->  应用activity启动事件。

       (9):键盘翻转事件百分比,即参数--pct-flip  ---> 

       (10):其他事件百分比,即参数--pct-anyevent  ---> 其他未提及事件,可能包含上述其他时间。

忽略崩溃  忽略ANR(Application Not Responding)     adb shell monkey -p com.topevery.ldt --ignore-crashes --ignore-timeouts 1000

       --ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。

       --ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。

       --ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。

       --ignore-native-crashes 监视系统中本地代码发生的崩溃

       --monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。

-v -v –v 提供最详细的设置信息,用于指定反馈信息级别,总共分为level 0、level 1、level 2三个级别,级别越高,输出的日志越详细。其他选项可以百度。(>表示文件覆盖打印;>>表示文件尾部打印)

结果分析

1**Monkey测试出crash的bug等级永远为1,版本发布前,Monkey跑出的结果中crash要为0。

业内标准:最终发布版本前,Monkey跑完的总次数不少于25W次,其结果里不允许有nullPointException出现。** 

0)测试成功的情况:搜索关键字“Monkey finished”

1)ANR(Application Not Response):程序无响应,一般主线程超过5秒没处理就会出现ANR错误。通过搜索ANR关键词来定位关键的事件信息。adb shell 进入手机-->cd /data/anr/   ---->ls  ---->more traces.txt  就可以查看了,里面记录了所有应用的anr信息

       一般是主线程的响应超过5秒,或者BroadcastReceiver没有在10秒内作出响应。这个就是一个比较严重的缺陷。把耗时的操作另起线程来处理就可以了。

2)ForceClosed或其他异常退出信息:通过搜索Fatal关键词来定位。内存泄露问题搜索"GC"(需进一步分析)

3)崩溃问题:通过搜索Exception关键词来定位。(如果出现空指针, NullPointerException,需格外重视)

4)发生异常后,通过搜索Crash关键词来定位到详细的堆栈信息。

5)内存溢出的情况:搜索关键字“OOM”

6) 其他异常

    A、Restart System异常(系统重新启动),即log信息的最后几行会看到Restart System的打印信息,说明手机被自动的重启或断掉,有几个方面的原因

        //运行过程中,存在异常手机被自动重启

        //手机在运行过程中,进入设置中的恢复出厂设置,导致手机重启

    B、RuntimeException等异常,同样的会在plog.log中可以看到相应的打印信息, java.lang.RuntimeException该问题多出现在操作无响应之后,或者是某应用的服务无法启动或连接时,需要具体问题具体的分析

    C、StaleDataException、readException等异常, 在plog.log中可以看到相应的打印信息,也会有相应的信息: android.database.StaleDataException,该信息说明android的数据库操作出现异常, 需要具体问题具体的分析

    D、IllegalArgumentException等异常,多少情况下为说明向函数传递了一个不正确或不合法的参数需要具体问题具体的分析

7)monkey执行后,异常终端,手机黑屏,且日志提示Injection Failed

      处理:换个手机,使用该seed看是否复现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容

  • JDK + SDK 1【概述】 什么是Monkey? 顾名思义,Monkey就是猴子, Monkey测试,就像一只...
    云层_阅读 995评论 0 16
  • Monkey 参数介绍 一、 什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器...
    DanHei様阅读 1,559评论 0 2
  • 一、monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送...
    小_小_桂阅读 998评论 0 53
  • (1)静态库的创建 工程名 SuperSDK (2)删除 .m实现文件 导入UIKit的头文件,这是创建一个库所需...
    Mz楓阅读 466评论 0 1
  • 今天一个妹妹出嫁,丹阳结婚的规矩是女方全家送亲,作为一个丹阳大姑爷,我曾经不理解这样的风俗。毕竟 结婚这样的大事,...
    黑土钱阅读 487评论 2 2