Android自动化测试之Monkey

来源:互联网 发布:VB中input函数怎么用 编辑:程序博客网 时间:2024/06/08 19:04

1、Monkey简介

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

Monkey帮助文档:
monkey文档地址为:< sdk >/docs/tools/help/monkey.html
在目录/docs/tools/help/下有非常多常用工具的帮助文档,如果访问Google网站不方便的话,我们就可以使用这个来查询。

sdk目录下帮助文档:
这里写图片描述


2、Monkey命令

我们可以简单的用:

adb shell  monkey

来使用monkey,monkey脚本是放在/system/bin/目录下的。

运行之后出现如下界面:

这里写图片描述

此时由于我们没有设置参数,monkey将会显示usage信息界面,从里面我们可以看到基本的参数。原来我们少了一个必须的参数COUNT。
最简单的monkey命令就如下:

adb shell monkey 100

这样我们就指定了发送100个事件,并把事件任意发送到安装在目标环境中的全部包。如果要制定选项呢?

通常我们有两种方式启动Monkey:

  • 直接PC启动

    adb shell monkey [options] < COUNT>

  • Shell端启动

    adb shell
    monkey [options] < COUNT>

这两种方式的区别就是,PC启动可以将日志保存在PC上,Shell端启动Monkey日志可以保存在手机里。

那么我们会用到哪些命令呢?这个就很多了,主要分为以下4种:
(这里笔者以Xmind软件来制作思维导图的形式分析常用命令)

2.1 常规类

主要有帮助信息和日志打印等级两个命令:

这里写图片描述

2.2 事件类

对随机事件进行调控,使其按照设定运行:

这里写图片描述

2.3 约束类

让你的随机事件范围控制在某几个包或者类中:
这里写图片描述

2.4 调试类

对monkey进行一些简单的调试,以便于快速的定位问题:

这里写图片描述


3、Monkey使用

monkey的使用我们可以按照上面讲过的命令选择需要的,进行组合即可,下面简单的说明一下其他要点。(本文仅讲述了在Windows环境下,Mac和Linux类似)

3.1 获取包名

如果我们要对某一个或多个包进行monkey测试,我们可以指定包名,但是当我们不清楚完整的包名时应该怎么办呢?

我们可以在CMD命令行中来查看本机装的所有apk的包名。执行如图所示命令即可:

这里写图片描述

注意:执行su命令一定要保证设备已经获取了root权限,否则会执行失败。

然后再执行:

 ls data/data

即可以显示出所有package name,我们查找需要的即可。

当然如果我们设备中安装的App很多的话,如果在CMD 窗口中看package name,显然不是一种明智的办法,那么我们可以将其导入到SD卡中,再pull到电脑,以方便我们以后使用。

3.2 运行&停止monkey

我们做一个简单的示例,主要说明怎么停止运行中的monkey。
首先在CMD中运行如下monkey命令:

adb shell monkey -p me.ele -p com.youdao.dict --throttle 1000 --wait-dbg 10000

在执行的过程中如果我们想停止执行怎么办呢?这是我们可以点击Ctrl+C来停止CMD运行,但是我们可以发现设备仍然在疯狂运行,并未停止下来。难道我们只有重启这个“万能”的方法吗?这时候我们可以用

 ps | grep monkey

命令来找出monkey所在的进程id,再kill掉此进程即可。如下图所示:

这里写图片描述

这种方法同样适用于清除其他后台程序。

关于monkey的基本使用我们就介绍到这里,当然Monkey还有其他一些功能,还有怎么去分析它产生的log?能够得到什么有用的信息呢?这些将会留在以后继续更新。

1 0
原创粉丝点击