03月27, 2014

android自动化工具之(二)Monkey

2.1为什么要进行monkey 软件测试是软件产品开发过程中的重要环节。测试对于发现软件中缺陷,保障软件的质量具有重要意义。统计表明,软件测试的时间通常占到软件开发时间的 40%,一些可靠性要求高的软件甚至高达 60%以上。

手工测试和自动化测试是软件测试的两种基本手段,二者相互补充,不可相互替代。其中,自动化测试能捕捉到资源冲突、多线程、死锁等手工测试难以发现的错误,可以高效的完成大量机械性、重复性测试,能模拟大量数据或大量并发用户等应用场景,从而有效的缩短软件测试周期,提高测试的可靠性及准确度。

另外有些bug是只有运行到一定时间才能出现,如果人工测试估计就无法去模拟不停的炒作,而monkey就能很好的模拟这些操作并记录下这些结果。

很多Android开发和测试人员很有可能因为思维限制等问题导致软件测试不到位,造成很容易出现FC(Force Close)的问题,这里我们可以通过使用Android固件中自带的monkey工具来做软件的压力测试,monkey工具可以模拟各种按键,触屏,轨迹球、activity等事件,说白了monkey就是一个小猴子随机狂玩你的android软件,看看会不会产生异常。

2.2什么是monkey Monkey 测试是 Android 自动化测试的手段之一,它通过模拟用户的按键输入、触摸屏输入等,测试设备多长时间出现异常。Monkey 是一个命令行工具,可以运行在模拟器或实际设备中,通过向系统发送伪随机的用户事件流,实现对全系统或某个应用程序进行压力测试。

Monkey 工具使用非常简单,直接在命令窗口键入 monkey 命令即可进行测试。Monkey 命令有较多的配置选项,下面我会一一为大家介绍。

Monkey 命令可简单分为如下四类:

基本配置选项,如设置尝试的事件数量

运行约束选项,如设置只对单独的一个包进行测试

事件类型和频率,如设置触摸屏事件的发生频率

调试选项,如设置忽略应用程序异常,继续向系统发送事件,直到计数完成。

2.3monkey的工作原理 1、 工作原理

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

2、 Monkey程序介绍

1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

3、 Monkey的特征

A、测试的对象仅为应用程序包,有一定的局限性。

B、Monky测试使用的事件流数据流是随机的,不能进行自定义。

C、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

4、Monkey测试的停止条件

Monkey Test执行过程中在下列三种情况下会自动停止:

A、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

B、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

C、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

D、对于monkey来讲,没有一个所谓真正100%的复现技术。只能通过多次的同样的seed值进行bug的修复确认。

2.4monkey工具环境搭建 1、monkey就是adb shell的一个子命令,所以我们要想弄明白monkey这个命令,就必须先了解一下adb。ADB的全名是Android Debug Bridge,就是起到调试桥的作用。ADB是android sdk(Android专属的软件开发工具包)里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如DEFY). 它的主要功能有(下面我会详细介绍):

  • 运行设备的shell(命令行)

  • 管理模拟器或设备的端口映射

  • 计算机和设备之间上传/下载文件

  • 将本地apk软件安装至模拟器或android设备

2、adb 环境的搭建

1、如果你已经安装了android的SDK包并且配置好了环境变量,记着一定要把tools的路径设置一下好,这样就可以在dos下执行adb命令了,如果设置成功的话会看到如下截图:

3、 有人会问使用adb必须要安装配置android sdk包吗?当然没有这些照样可以解决这些问题,我们只需要一下三个文件即可:

这三个文件的在网上很轻松就可以找到,下载后将这三个文件放到C:\WINDOWS\system32目录下然后在dos下执行adb命令就可以看到上图的输出信息。

本文链接:http://blogs.360.cn/post/android自动化工具之(二)monkey.html

-- EOF --

Comments