1       前言

为方便快速上手Monkey测试相关问题,针对测试中发现的Monkey问题进行了整理总结,供定位Monkey参考。

2       关于Monkey测试

2.1       环境:JAVA环境  ANDROID环境

Monkey Test介绍及测试方法,请参考:

http://blog.csdn.net/subsist/article/details/8463946

3       Monkey测试参数建议

操作间隔时间:500毫秒;

操作类型:点击 手势 切换程序 横竖屏 等;

遇到错误:不停止;

执行时长:每机型不小于12小时 或 点击次数:100万次;

机型覆盖建议:覆盖高中低端机型(真机),不同芯片平台(高通、海思、MTK等),不同分辨率(480*800以上主流分辨率),不同安卓版本(安卓4.0以上主流安卓版本);

【参考命令】:

//基本命令

adb shell monkey -p com.UCMobile 100

adb shell pm list package -3 // 拿包名

adb 执行monkey  包名 点击次数(随机操作)

//停止

adb shell “ps |grep monkey”  第二个字段

adb shell kill  X

或 adb shell "pid=`ps | grep monkey | awk '{print $2}'` && kill $pid"

//操作间隔500ms

adb shell monkey -p com.UCMobile 1000  --throttle 500

//日志输出

adb shell monkey -p com.UCMobile   --throttle 500  10000  >D:\MonkeyLog.txt

日志等级

adb shell monkey -p com.UCMobile    --throttle 500 -v -v -v 5000>D:\MonkeyLog.txt

adb shell monkey -p com.anyview --throttle 500  -v -v -v  10000  1>d:\Log.txt  2>d:\Error.txt

//异常时不停止

adb shell monkey -p com.UCMobile   --throttle 500   --ignore-crashes  --ignore-timeouts -v -v -v  5000  >D:\MonkeyLog.txt

// 遇到错误时,应用程序停止运行并保持在当前状态  --kill-process-after-error

//制定操作比例 点击 手势 应用切换 横竖屏切换


adb shell monkey -p com.UCMobile   --throttle   --ignore-crashes  --ignore-timeouts –pct-touch  -- pct-motion  --pct-appswitch  --pct-rotation  -v -v -v  >D:\MonkeyLog.txt

throttle 500 用户操作事件的延时
com.UCMobile 包名
touch 触摸
appswitch 切换
rotation 横竖屏
最后那个 1000 表示总次数

--throttle <毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

* 示例:adb shell monkey -p com.htc.Weather –throttle 3000 100

 --ignore-timeouts
用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

--ignore-crashes

用于指定当应用程序崩溃时(Force & Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

 

参数:  -v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level 0

说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

说明  提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

说明  最详细的日志,包括了测试中选中/未选中的Activity信息


注意:各事件类型的百分比总数不能超过100%;

查看应用CPU消耗

adb shell top -n 1 |find "com.anyview"

查看应用所占内存

adb shell dumpsys meminfo com.anyview

查看应用显卡消耗

adb shell dumpsys gfxinfo com.anyview

4       Monkey测试会发现哪些问题

Android平台应用程序可能产生以下四种Crash:

App层:

1、Force Close Crash 程序崩溃
2、ANR Crash 无响应

Native层:

3、Tombstone Crash(Native Crash)  
Kernel层:

4、Kernel Panic 更深一层的错误

5      
如何通过Monkey日志定位问题

5.1      
典型Monkey测试日志文件输出

MonkeyLog.txt:保存Monkey测试过程、应用层错误信息,发生Native Crash时,在此文件也会有记录;

5.2      
通过日志定位问题步骤

1、         
在Monkey日志文件搜索关键词“Fatal”、“Crash”、“ANR”定位到发生Crash的详细堆栈信息,通过上下文初步判断发生问题的时间,进程pid等;

如图:

2、         
通过手机端的日志信息寻找对应问题的可能错误,定位解决问题。

6 更多参考资料

1、  android
常见死机问题--log分析

2、  分析bugreport

3、  如何分析解决Android ANR

4、  Android
Tombstone Crash的log分析和定位

5、  Android中对Log日志文件的分析

6、  Watchdog
kills system service in system_server

7、  android ANR异常及其解决方式

7 adb 如何连接夜神模拟器

2018年01月08日
11:02:53 阅读数:3424 标签: adb如何连接夜神模拟器 更多

个人分类: adb

1.打开夜神模拟器,打开设置,调成手机模式,初次进入的话,进入设置,点击版本号5次,可以激活使用开发者模式,进入后打开USB调试功能

2.打开文件资源管理器,进入夜神模拟器的安装位置,在地址栏输入cmd,回车,会打开cmd窗口,进入的路径就是夜神模拟器的安装位置。我的默认安装位置:C:\Program
Files (x86)\Nox\bin

3.输入nox_adb.exe connect 127.0.0.1:62001即可以连接到adb

或者是 adb connect 127.0.0.1:52001

adb
connect 127.0.0.1:62001

4.打开夜神模拟器,选择一个需要调试的应用

5.切换到doc 输入 adb
devices,可以显示到连接上的设备

常用monkey_app稳定性的更多相关文章

  1. 【Monkey】Monkey稳定性测试常用命令

    Monkey稳定性测试常用命令: 1.adb shell monkey n 2.adb shell monkey -p  com.android.calculator2 1000 3.adb shel ...

  2. linux的常用文件系统格式

    文件系统指文件存在的物理空间.在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构.Linux的最重要特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其它种操作系统共存.Vi ...

  3. 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)

    8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...

  4. HotSpot JVM常用参数设置

    转自:https://www.zybuluo.com/jewes/note/57352 选项的分类 Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也 ...

  5. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  6. Web测试的常用测试用例与知识

    1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...

  7. redis常用总结

    1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...

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

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

  9. web测试常用的用例及知识

      1.      Web测试中关于登录的测试... 1 2.      搜索功能测试用例设计... 2 3.      翻页功能测试用例... 3 4.      输入框的测试... 5 5.    ...

随机推荐

  1. Eclipse常用快捷键(持续更新)

    编辑相关快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1.[Ctrl+O] 显示类中方法和属性的大纲, ...

  2. CentOS7.2安装RabbitMQ笔记

    身为.NET程序员,用着宇宙级IDE,干什么事都变得越来越懒了,Windows操作系统在手,能通过桌面点点点的方式何必找其他罪受呢..于是RabbitMQ自然而然也就跑在Windows上了,说实话Wi ...

  3. CC2540 OSAL 学习其中原理,以及 给任务 添加 一个事件(定时发送串口消息)

    参考学习大神博客: http://blog.csdn.net/feilusia/article/details/51083953 : http://blog.csdn.net/xiaoleiacmer ...

  4. js如何将一个json数组对应放置到另一数组中去

    需要将上面这个数组的每一个元素对应添加至下面的数组中 最后合成为这样的数组: 使用for循环,将第一个数组中的元素循环到第二个数组中

  5. Python装饰器高级用法

    在Python中,装饰器一般用来修饰函数,实现公共功能,达到代码复用的目的.在函数定义前加上@xxxx,然后函数就注入了某些行为,很神奇!然而,这只是语法糖而已. 场景 假设,有一些工作函数,用来对数 ...

  6. 【MySQL】基本语句

    ##mac启动mysql的命令语句## /usr/local/mysql/bin/mysql -u root -p ##然后输入密码 查看当前存在数据库 show databases; 创建数据库 c ...

  7. Mariadb相关

    centos下Mariadb相关 MariaDB 是一个采用 Maria 存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服 ...

  8. $.ajax 完整参数

    jquery中的ajax方法参数 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意 ...

  9. python教程(三)·函数进阶(下)

    下半部分果然很快到来,这次介绍函数的更高级用法,装饰器! 函数嵌套 先来说说函数嵌套,python中的函数是可以嵌套的,也就是说可以将一个函数放在另一个函数里面,比如: >>> de ...

  10. PTA(BasicLevel)-1008数组元素循环右移问题

    一 .问题描述      原题描述 将长度为n的整形数组A进行右移m位操作, [A0 A1 A2 A3 ... Am...An-1]变为[An-m...An-1 A0 A1 A2 A3 ...An-m ...