Monkey测试结果分析

一. 初步分析方法:

Monkey测试出现错误后,一般的差错步骤为以下几步:

1、 找到是monkey里面的哪个地方出错

2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作

3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样

一般的测试结果分析:

1、 ANR问题:在日志中搜索“ANR”

2、 崩溃问题:在日志中搜索“Exception”

二. 详细分析monkey日志:

将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。

首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。

然后我们要分析log中的具体信息,方法如下:

查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end

// Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt

在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执行了一个单击的操作;

Sleeping for 500 milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。

SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN 代表当前执行了一个点击下导航键的操作;

Sending Pointer ACTION_MOVE 代表当前执行了一个滑动界面的操作。

:Sending Pointer ACTION_DOWN x=47.0 y=438.0

:Sending Pointer ACTION_UP x=47.0 y=438.0

Sleeping for 500 milliseconds

:SendKey (ACTION_DOWN): 20 //KEYCODE_DPAD_DOWN

:SendKey (ACTION_UP): 20 //KEYCODE_DPAD_DOWN

Sleeping for 500 milliseconds

:Sending Pointer ACTION_MOVE x=-2.0 y=3.0

:Sending Pointer ACTION_MOVE x=4.0 y=-3.0

:Sending Pointer ACTION_MOVE x=-5.0 y=-3.0

:Sending Pointer ACTION_MOVE x=3.0 y=4.0

:Sending Pointer ACTION_MOVE x=-4.0 y=1.0

:Sending Pointer ACTION_MOVE x=-1.0 y=-1.0

:Sending Pointer ACTION_MOVE x=-2.0 y=-4.0

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:

Events injected: 6000

:Dropped: keys=0 pointers=9 trackballs=0 flips=0

## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)

// Monkey finished


Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过。

1)Monkey finished
打开LOG,查看log的最下端,是否有类似以下字段:
## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished
这个字段表明本次的Monkey没有异常,测试通过。

2)CRASH

同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。
// CRASH: com.onekchi.downloadmanager (pid 12919)

3)ANR
在Log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。--throttle <毫秒>值建议为500

4)无法搜索到上述信息
出现这种情况,一般都是外界原因而非程序本身原因。比如电脑异常测试中断,需要重新测试。

作者:玄武湖
链接:https://www.zhihu.com/question/26028428/answer/122778307
来源:知乎

monkey测试===Monkey测试结果分析(系列三)转的更多相关文章

  1. Monkey进行压力测试定位问题分析

    Monkey测试的log分析,我们可以通过几个关键词来判断测试是否通过.   分析log方法一(粗糙一点): 1)Monkey finished打开LOG,查看log的最下端,是否有类似以下字段:## ...

  2. Android APP压力测试-Monkey

    压力测试-Monkey学习 Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随 ...

  3. monkey命令行测试

    一. 什么是Monkey monkey是google提供的一个用于稳定性与压力测试的命令行工具.monkey程序由android系统自带,位于/sdcard/system/framework/monk ...

  4. Android客户端稳定性测试——Monkey

    修改时间 修改内容 修改人 2016.6.20 创建 刘永志 2016.6.29 完成 刘永志 Monkey简介: Android SDK自带的命令行测试工具,向设备发送伪随机事件流,对应用程序进行进 ...

  5. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  6. android 自动化压力测试-monkey 1 实践

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  7. monkey测试===monkeyrunner测试教程(1)

    1.安装测试环境 jdk 安装与配置 android sdk安装与配置 Python编辑器安装与配置 以上安装请自行百度教程 Monkeyrunner使用方法 http://www.android-d ...

  8. android压力测试monkey简单使用

    monkey是android sdk自带的压力测试工具,简单使用如下: 用adb shell进入adb shell环境后,用下面命令进行测试 monkey -p com.xxx.yyy -v num ...

  9. 利用Monkey进行APP测试

    APP测试策略 功能测试 安装.卸载测试 升级测试(跨版本) 数据丢失 版本兼容 业务逻辑测试 UI测试 异常测试 适配测试 软件 兼容性测试 硬件 性能测试 效率测试 启动时间 响应时间 页面流畅度 ...

随机推荐

  1. getline读取整行文本// isprint

    getline——读取整行文本 这个函数接受两个参数:一个输入流对象和一个string对象.getline函数从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符.和输入操作符不一样 ...

  2. 【CSU1911】Card Game(FWT)

    [CSU1911]Card Game(FWT) 题面 vjudge 题目大意: 给定两个含有\(n\)个数的数组 每次询问一个数\(x\),回答在每个数组中各选一个数,或起来之后的结果恰好为\(x\) ...

  3. BZOJ2938 & 洛谷2444:[POI2000]病毒——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2938 https://www.luogu.org/problemnew/show/P2444 二进制 ...

  4. MySQL - General error: 1390 Prepared statement contains too many placeholders

    报错原因:预处理 SQL语句时使用的占位符数量超过了最大限制(默认65535). 解决方案:拆分查询语句,每次使用的占位符低于限制即可.

  5. Java第二次实验报告——Java面向对象程序设计

    北京电子科技学院(BESTI) 实    验    报    告 课程名称:java程序设计实验      班级:1352         姓名:洪韶武      学号:20135219 成绩:   ...

  6. 实验三 Java敏捷开发与XP实践

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计                         班级:1353            姓名:陈巧然     ...

  7. github clone 指定的tag

    git clone --branch [tags标签] [git地址] 使用branch参数,后面加上tag标签,最后是git仓库的地址

  8. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)

    (其实今天好热啊? 题目大意:插入,删除,k小,前驱后继,数的排名. splay和treap裸题...过几天补个treap的 splay: #include<iostream> #incl ...

  9. ywy_c_asm题

    未知出处 题意: 定义一个无穷长的数列,满足以下性质:$1.X_{2n}=-{X_{n}}$ $2.X_{2n}=(-1)^{(n+1)}*X_{n}$ $3.X_{2n-1}=(-1)^{(n+1) ...

  10. PHP导出excel,无乱码

    php部分 header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes&qu ...