Android自动化测试之Monkey

https://blog.csdn.net/u011436666/article/details/53265372

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

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

sdk目录下帮助文档:


2、Monkey命令
我们可以简单的用:

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

运行之后出现如下界面:

 

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

adb shell monkey 100
1
这样我们就指定了发送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
1
即可以显示出所有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
1
在执行的过程中如果我们想停止执行怎么办呢?这是我们可以点击Ctrl+C来停止CMD运行,但是我们可以发现设备仍然在疯狂运行,并未停止下来。难道我们只有重启这个“万能”的方法吗?这时候我们可以用

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

 

这种方法同样适用于清除其他后台程序。
---------------------
作者:LupuX
来源:CSDN
原文:https://blog.csdn.net/u011436666/article/details/53265372
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-01-02 17:01  bell1991  阅读(195)  评论(0编辑  收藏  举报