app专项测试之稳定性测试-monkey测试
一. monkey测试简介
monkey工具是Android自动化测试工具的一种,主要对Android app稳定性和健壮性进行测试。
Monkey是Android系统中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)模拟用户操作,实现对设备上的程序的压力测试,检测程序多久时间会发生异常。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
二. monkey的特征
1. 测试的对象仅为应用程序包,有一定的局限性。
2. Monky测试使用的事件流数据流是随机的,不能进行自定义。
3. 可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
适用情况:ANR和CRASH异常情况;低概率很难复现的异常。
三. 安装monkey工具
1. 下载安装JDK
附JDK官网下载链接http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载截图(其中需要同意许可证,同时针对mac下载和window下载(x86是32位,x64是64位)已标注)
安装成功后可验证是否安装成功,mac打开终端,输入java -version回车,出现版本信息则安装成功
2.下载Android开发环境的Adt Bundle
附下载链接http://www.cnblogs.com/tc310/p/3938353.html
下载截图(针对mac下载和window下载(x86是32位,x64是64位)已标注)
安装成功后可验证是否安装成功,mac打开终端,输入adb version回车,出现版本信息则安装成功
此时打开终端输入adb会提示-bash: abd: command not found。需要解决Android SDK的adb命令添加到环境变量的问题。
1. 启动终端,进入到当前用户的Home目录(命令在下一行)
cd $HOME
2. 创建 .bash_profile文件
touch .bash_profile
3. 打开 .bash_profile 文件,对其内容进行编辑
open -e .bash_profile
4. 此时文本编辑器会打开一个文本,编辑内容如下:
export PATH=${PATH}:此处粘贴adb中platform-tools文件夹所在的目录路径地址
编辑完成后,可直接关闭,此时已保存
5.更新此文件
source .bash_profile
此时的adb环境配置好,可以检验一下
6.检验是否成功(终端输入)
adb/adb devices
adb组成
客户端client:运行在pc端上,可以通过shell来调起一个客户端,其他android工具
服务器server:运行在pc端后台,负责管理client和daemon进行通信
守护进程daemon:运行在模拟器或者android设备的后台
adb常见命令
adb –help 查看帮助手册
adb devices 检测连接到电脑的安卓设备
adb pull <手机路径><本机路径>从手机中拉取信息放到本地电脑上
adb shell ;ls ;cd sdcard ; exit ; 手机路径 /sdcard/kwsecurity-crash.txt 本机路径 /Users/mac/Desktop/
adb push <本机路径><手机路径>从本地推送信息到手机上去
adb push /Users/mac/Desktop/yiwei /sdcard/
adb shell 登录设备 shell(命令行的人机界面)进入linux环境了。(相当于执行远程命令)
pm list packages 查看应用安装的包
$ pm list packages | grep mockuai 根据某个关键字查找包
adb logcat 打印日志
control+c 停止
adb logcat > 目录文件保存日志文件
ps:查看当前运行程序
adb install xxx.apk apk所在路径
adb uninstall 应用包名
adb shell dumpsys activity | find “mFocusedActivity” –查看前台应用包名
adb shell dumpsys activity | grep “Focus” com.mockuai.mkselleros
adb connect/disconnect 通过wifi进行远程连接手机进行调试
adb tcpip 5555
3. 打开usb调试
若使用真机,用USB将手机和Mac连接,在手机端进行操作:
1. 选择USB连接方式为传输文件;
2. 设置->其他设置->开发者选项->开启开发者选项和usb调试(真机和模拟器上皆需进行);
检测是否连接了设备:adb devices
部分真机可能存在检测不到的情况,可进行创建、修改adb_usb.ini文件,操作如下:
a、在终端中输入‘system_profiler SPUSBDataType’,找到手机的Vendor ID并记录;
b、在终端中输入‘vi ~/.android/adb_usb.ini’,创建并打开文本,按‘I’键可对文本进行编辑,向文本中添加记录的Vendor ID
(若添加多个,需确保每个id占一行且文本中无空行),完成后按‘esc’键,然后键入‘:wq!’,即可保存并退出文本。完
成此步后将发现路径/Users/xxx/.android下存在adb_usb.ini文件;
c、将手机拔掉重新接入Mac,重复1.2,在终端中输入‘adb kill-server’,然后输入‘adb start-server’,再次输入‘adb devices’查看是否识别到设备。
四. monkey常见命令
monkey命令格式:
adb shell monkey {+命令参数} 次数
adb shell monkey -help/-h
-v 用于指定反馈信息级别(信息级别就是日志的详细程度,总共分三个级别)
-p 后面接着的对应的包名,此参数指定一个或多个包
-s 用于指定伪随机数生成器的seed值,如果seed值相同,则两次monkey测试所产生的事件序列也相同的。(用于问题重现)
–throttle<毫秒> 用于指定用户操作(事件)间的时延,单位是毫秒
-ignore-crashes-ignore-timeouts 在monkey测试的过程中遇到crash或者timeout的情况忽略掉,一般不设置时,出现crash或者timeout时,monkey测试会终止
设置这个是为了防止monkey测试终止
次数 指点击的次数,一般设置100000