常用monkey_app稳定性
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 更多参考资料
2、 分析bugreport
4、 Android
Tombstone Crash的log分析和定位
6、 Watchdog
kills system service in system_server
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稳定性的更多相关文章
- 【Monkey】Monkey稳定性测试常用命令
Monkey稳定性测试常用命令: 1.adb shell monkey n 2.adb shell monkey -p com.android.calculator2 1000 3.adb shel ...
- linux的常用文件系统格式
文件系统指文件存在的物理空间.在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构.Linux的最重要特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其它种操作系统共存.Vi ...
- 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)
8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...
- HotSpot JVM常用参数设置
转自:https://www.zybuluo.com/jewes/note/57352 选项的分类 Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也 ...
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- Web测试的常用测试用例与知识
1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...
- redis常用总结
1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...
- Android客户端稳定性测试——Monkey
修改时间 修改内容 修改人 2016.6.20 创建 刘永志 2016.6.29 完成 刘永志 Monkey简介: Android SDK自带的命令行测试工具,向设备发送伪随机事件流,对应用程序进行进 ...
- web测试常用的用例及知识
1. Web测试中关于登录的测试... 1 2. 搜索功能测试用例设计... 2 3. 翻页功能测试用例... 3 4. 输入框的测试... 5 5. ...
随机推荐
- Vue学习—Vue写一个图片轮播组件
1.先看效果: 熟悉的图片轮播,只要是个网站,百分之90以上会有个图片轮播.我认为使用图片轮播. 第一可以给人以一种美观的感受,而不会显得网站那么呆板, 第二可以增加显示内容,同样的区域可以显示更多内 ...
- 奇妙的CSS3—导航栏下划线跟随效果
先来看一下效果: 1.基本效果就是这样的 ,鼠标悬停,下划线划入.鼠标离开,下划线划出 2.下划线的划入是有方向的,从左侧划入悬停,下划线由左向右伸长.从右侧划入,下划线由又往左伸长 实现思路 1.导 ...
- git add用法
git add命令是将工作区内容添加到暂存区.git commit 将暂存区内容添加到版本库. git add -A 提交所有变化 git add -u 提交被修改(modified)和被删除(d ...
- 如何设计处优秀的Restful API
只知道遵规循矩的程序员是假程序员,任何技术都是不断发明创造改进的. 如何设计处优秀的Restful API? 盲目跟风,设计糟糕的Resful API = 浪费时间 ! 不啰嗦,直接进入技术主题: ...
- Mysql完全卸载(Windows版本)
(1)控制面板 ---> 程序和功能 ---> 卸载MySQL Installer: (2)删除MySQL软件安装路径下的MySQL目录,默认目录为 C:\Program Files (x ...
- 一条SQL语句的千回百转
SQL语言相信大家都不陌生,从本质上来说,它是一种结构化查询语言,是用来数据库之间的通信的编程语言.作为一名Java程序员,我们从Java角度来看,SQL语言相当于Java接口,而数据库是实现这个接口 ...
- 单线程+多线程下载doutula.com图片
现在是2018年8月11日11:26:42,我挖的eth又降价了..... 单线程 # -*- coding:utf-8 -*- import re import os import urllib i ...
- ubuntu 和windows 分别在anaconda上安装tensorflow
windows下 的anaconda安装tensorflow: 在Anaconda Prompt中:conda install tensorflow python=3.5一直下载失败.总结一下原因可能 ...
- VC6无法生成Release版本程序
在工程设置,将Setting for后面的选项改为Win32 Release.然后重新编译.结果仍然没有生成release,而且打开设置时,依然是Win32 Debug. 解决办法,在VC6.0的工具 ...
- 20155214 2016-2017-2 《Java程序设计》第4周学习总结
20155214 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 Chapter6 父类就是将多个类的相同代码提升(Pull Up) 子类继承父类会继承到pr ...