㈠ android测试monkey什么意思
Monkey是Android中自带的用来进行压力测试的一个命令行工具。
用Monkey进行App压力测试的结果有三种。
1、正常。
2、Crash :程序崩溃。
3、ANR:程序无响应。
第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了。
第二步:准备好要测试的项目,比如可以是一个.apk安装包,也可以是已经安装到手机上的软件 。
第三步:连接上Android测试设备,可以是模拟器,当然也可以是手机,通过adb 命令对测试项目进行Monkey测试。
当然这一测试也是存在着优缺点的。
优点:功能强大, 主要用于压力和稳定性测试。缺点:本身不提供截屏功能,本身无法完成录制、回放的功能(不过都可以借用其他的开源工具来实现Monkey的截屏和录制等功能)。
㈡ adb命令和monkey总结
移动动测测试试基基础础
adb常常用用命命令令总总结结
1. adb / adb -help 使用帮助
2. adb devices 查看连接到电脑的设备
3. adb install example.apk 安装程序
4. adb -s emulator-5554 install example.apk 安装程序到指定的设备上(模拟器)
5. adb pull <remote> <local> 将设备上文件保存到电脑上
6. adb push <local> <remote> 将本地的文件上传到设备上
7. adb start-server 重启adb服务
8. adb kill-server 杀掉adb服务
9. adb shell 进入命令行交互模式,进入之后可以像在linux输入shell命令一样来操作手机设备(android本来就是基于linux的)
10. adb logcat <信息显示优先级参数> 显示日志信息 优先级从低到高顺序排
11.adb shell cat /proc/cpuinfo 查看手机CPU,
12.adb shell ps 查看进程信息
Monkey命令实战
1.Monkey是什么?
Monkey是Android中的一个命令行工具,可以运行在模拟器或者实际设备中
向系统发送伪随机的用户事件流(按键输入、触摸屏输入、手势输入等)
实现对正在开发的应用程序进行测试
Monkey测试之一种为了测试软件的稳定性、健壮性的快速有效的方式
2.Monkey的特征
测试对象仅为应用程序包,有一定的局限性(不能对源码进行测试)
Monkey测试使用的事件流数据是随机的,不能进行自定义
可以对MonkeyTest对象,事件数量,类型、频率等进行设置
3. Monkey使用
adb shell monkey [options]
adb shell monkey -p 包名 -v 500
-p 指定测试程序包名
-v 显示默认程度的信息
500 事件数设定为500
例如: adb shell monkey -p com.android.calculator2 -v 500
4. Monkey命命令令结结果果分分析析
1. 找monkey里面那个出错的地方
2. 查看monkey里面出错前的一些事件动作,并手动执行该动作
3. 若以上步骤还不能找出,使用之前执行的monkey命令再执行一遍,seed值要一样(seed值一样,发送的伪随机事件流也一样)
4. 注意第一个switch以及其他信息
seed值和,不同event类型比例
5.Monkey测试的目的
1. ANR问题:在日志中搜索“ANR”
2. 崩溃的问题:在日志中搜索“Exception”
3. ANR:Application Not Responding,在Android中,如果应该程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应
用程序无响应对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”应用。 好的程序应该能流畅运行,不能出现ANR问题
Monkey命令进阶
1.运行时机
产品功能稳定之后进行
2. monkey更更复复杂杂的的命命令令
adb shell monkey -p packagename -v -v -- throttle 600 88
-v :代表整个Monkey运行的次数,多个 -v 可以定制Monkey报告的等级
--throttle 600 : 每个操作都间隔时间600ms
88 :执行的事件数
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 --throttle 600 88
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 -s 1234 --throttle 600 88
--pct-touch :设置在整个过程中点击操作所占的百分比
--pct-trackball: 设置滚轮在所用操作中的百分比
--ignore-crashes:崩溃之后继续测试,重新启动程序
--ignore-timeouts:遇到超时,也继续执行
-v:
命令行的每一个-v将增加反馈信息的级别
Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息
Level 1提供较为详细的测试信息,如逐个发送到Activity的事件
Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity
更多monkey命令:http://xqtesting.blog.51cto.com/4626073/1430654
实测命令(经常用到的,可以参考):
adb shell monkey -p com.xx.xxx(包名)--throttle 500 --ignore-crashes --igonre-timeouts --ignore-security-exceptions --igonre-native-crashes --
monitor-native-crashes -v -v -v 1000000 >> D:\monkeyScreenLog.log
说明:忽略crashes、timeout等是为了出问题是monkey继续运行下去,希望能抓取更多的出错信息
3.可可以以练练习习使使用用的的apk包名
com.android.calculator2
com.android.browser
com.android.music
com.android.email
com.android.contacts
monkey也可以进行压力测试。
可靠性测试
稳定性测试:长时间使用软件不会出现无响应
monkey:安卓系统常用稳定性和压力测试工具
语法:monkey -p 包名 --throttle 数值(间隔时间,单位ms) -v 数值(操作次数)
monkey -p com.emicro.emicrophone --throttle 500 -v 300
百分比事件
0:点击事件 参数--pct-touch
1:滑动事件 --pct-motion
2:缩放事件 --pct-pinchzoom
3:轨迹球事件 --pct-trackball
4:屏幕旋转 --pct-rotation
5:基本导航事件 --pct-nav
6:主要导航事件 --pct-majornav
7:系统按键事件 --pct-syskeys
8:activity启动事件 --pct-appswitch
9:键盘唤出隐藏事件 --pct-flip
10:其他事件 --pct-anyevent
异常测试 :断电,断网,异常退出。。。
adb 调试桥
adb devices 检查设备是否连接
adb install apk文件路径文件名
adb uninstall 包名 卸载
aapt d badging apk文件路径文件名
adb shell 进入安卓系统
㈢ ADB工作原理
Android 调试桥 (adb) 是一种功能多样的命令行工具。它可以让你与设备进行通信,adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限,它是一种C/S架构的程序,包括以下三个组件:
客户端: 主要用于发送命令,adb client在开发机器上运行,你可以通过发出 adb 命令从命令行终端调用客户端,它主要的工作是:解析像:push、shell、install等命令的参数,做必要预处理,然后转移为指令或数据,发送给adb server。
守护程序 (adbd): 是运行在Android设备(真机/模拟器)后台的一个进程,它是由init进程启动的,并且系统一开机就已经启动,它的主要作用是处理来自 adb server的命令行请求,然后获取对应Android设备的信息,再将结果返回给adb server。
服务器 (adb server): 是运行在PC上的一个后台进程,它有两个作用:
当启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行,如果没有,它会先启动服务器进程,服务器在启动后会与绑定和监听PC上的 TCP 端口 5037 ,并处理 adb 客户端发出的命令(所有 adb 客户端通信均通过与PC上端口 5037 建立TCP连接通信)如下图:
然后,adb server会与所有正在运行的设备建立连接,TCP连接方式下,它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器,服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接,请注意,每个模拟器都使用一对按顺序排列的端口(用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口)
通过查看端口,可以看到adb server已在 5037 端口监听 'LISTENING' 。
Client通过发送指令的方式,给到adb server端,adb server端进行判定,是否需要转发到adbd进行处理。
㈣ android压力测试工具有哪些,各有什么特点。有文档更好,兄弟我想研究下。
最近在Android程序测试过程中接触到了自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monkeyrunner其它test tool等等。因接触时间很短,很多地方有不足之处,希望能和大家多多交流和指点在这里简单对monkey做简单的介绍吧。
一、 什么是Monkey
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
二、 Monkey的特征
1、测试的对象仅为应用程序包,有一定的局限性。
2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。
3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
三、Monkey的基本用法
基本语法如下:
$ adb shell monkey [options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送1500个伪随机事件:
$ adb shell monkey -p your.package.name -v 1500
$ monkey -p(package的意思) 指定文件名 -v(测试的次数和频率) number(次数)
四、Monkey测试的一个实例
通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。
Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):
1、 通过eclipse启动一个Android的emulator
2、 在命令行中输入:adb devices查看设备连接情况
C:\Documents and Settings\Administrator>adb devices
List of devices attached
emulator-5554 device
3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面
C:\Documents and Settings\Administrator>adb shell
#
4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面
C:\Documents and Settings\Administrator>adb shell
# ls data/data
ls data/data
com.google.android.btrouter
com.android.providers.telephony
com.android.mms
com.android.providers.downloads
com.android.deskclock
com.android.email
com.android.providers.media
com.android.settings
jp.co.omronsoft.openwnn
com.android.providers.userdictionary
com.android.quicksearchbox
com.android.protips
com.android.browser
com.android.launcher
com.android.term
com.android.speechrecorder
com.android.server.vpn
com.android.defcontainer
com.svox.pico
com.android.customlocale
com.android.development
com.android.soundrecorder
com.android.providers.drm
com.android.spare_parts
com.android.providers.downloads.ui
com.android.fallback
com.android.providers.applications
com.android.netspeed
com.android.wallpaper.livepicker
android.tts
com.android.htmlviewer
com.android.music
com.android.certinstaller
com.android.inputmethod.pinyin
com.android.providers.subscribedfeeds
com.android.inputmethod.latin
com.android.gallery
com.android.systemui
com.android.contacts
com.android.phone
com.android.sdksetup
com.android.calculator2
com.android.packageinstaller
com.android.camera
com.android.providers.settings
com.thestore.main
com.android.providers.contacts
5、 以com.android.camera作为对象进行MonkeyTest
#monkey -p com.android.camera -v 500
其中-p表示对象包 –v 表示事件数量
运行过程中,Emulator中的应用程序在不断地切换画面。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
注:具体参数的设定可参考:
http://developer.android.com/guide/developing/tools/monkey.html
五、关于Monkey测试的停止条件
Monkey Test执行过程中在下列三种情况下会自动停止:
1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。