MonkeyRunner 录制脚本啦


版权声明:

本公众号发布的所有文章,均属于原创,版权归本公众号所有。

允许有条件转载,转载请附带底部二维码。

一、前言

还记得前几天推送的文章《Android压力测试之MonkeyRunner》提到过,实际上MonkeyRunner (下文简称 MR ) 除了可以纯手工利用 Python 编写脚本之外,还可以录制脚本,并回放脚本。

那么本片文章,就以这个主题,全面带你了解如何使用 MR 录制脚本,并且回放脚本的形式,来做自动化的测试。

使用 MR 需要的环境,Python 2.7 、ADB 等,都请自行配置,这里不再进行讲解。

二、MonkeyRunner 录制脚本

不知道出于什么目的,Google 对 Monkey 系列的很多功能,都进行了隐藏。从 Monkey Script 到 MonkeyRunner 录制脚本,这些功能都被隐藏掉了。但是依然可以从源码里找到蛛丝马迹。

MR 是依赖 Python ,并使用 Jython 来解释脚本,而我们用到的 MR 录制和回放功能,也是需要依赖两个 Python 脚本的。

  • monkey_recorder.py:录制
  • monkey_playback.py:回放

这两个脚本和 MR 脚本的执行一样,使用 monkeyrunner 命令既可执行,其内容之后会介绍到。

1、录制

录制 MR 脚本,可以使用命令:

monkeyrunner monkey_recorder.py

执行完成之后,会启动一个 MonkeyRecorder 的窗口。

在 MonkeyDecorder 窗口里,可以看到当前连接设备的一个展示效果,在其上有一些功能按钮,用于我们录制脚本。下面我们来详细讲解这些按钮的含义。

1.Wait

Wait 按钮,用于在多个操作之间,设置一个停顿,注意这里的停顿设置的暂停时间,单位是秒(s)。这个 Wait 的功能非常的有用,如果太快速的操作,对于自动化而言,基本上就是一闪而过。有时候需要一些等待的时间来让程序响应。

2.Press a Button

Press a Button 用于模拟一个设备上的按键操作。当然也只是支持一些常规的 按钮。

3.Type Something

Type Something 按钮,可以用于录入一个字符串,一般用于模拟输入。

4.Fling

Fling 按钮,用于模拟一个滑动操作。

5.Export Actions

Export Actions 按钮,用于保存之前一系列的操作。保存的脚本,后缀为了标识清楚,一般可以使用 .mr 或者 .script,都可以,没有强制要求。

6.RefreshDisplay

这个没什么好说的,如果遇上 MonkeyDecoreder 显示的图像和设备上不符合,可以点此按钮进行刷新。

2、回放

将录制好的脚本,通过 Export Actions 以脚本的形式保存到本地之后,就可以通过 monkey_playback.py 脚本进行回放了。回放功能会将之前录制好的操作,原样返回到设备中去。

monkeyrunner monkey_playback.py <script.mr>

三、手把手录制一个脚本

既然都介绍了 MR 录制脚本需要用到的一些工具和脚本,接下来我们就可以开始实际录制一个脚本,来看看录制的流程,跟好的理解问题。

首先我们需要设计好需要录制的操作,这个和之前 MonkeyRunner 手写的脚本逻辑一样。

操作步骤:

  1. 在用户明对话框,输入:abcd
  2. 在密码框中,输入:1234
  3. 点击 Login 按钮。

在这些操作的空隙内,暂停 1s ,以方便我们看到步骤在执行。

1、开始录制脚本

执行 monkey_recorder.py 去打开 MonkeyRecorder 窗口,进行操作。

从上面的步骤可以看出来,每次的操作,右边就出现对应的的脚本,可以看到之前的步骤。因为录屏工具的缘故,在 gif 图中,并没有实时刷新 UI ,但是实际上是会自动刷新的。

录制好的脚本,就可以以脚本的形式保存到本地。就可以在需要回放的时候使用了。

2、回放脚本

既然已经保存了我们需要的回放的脚本。那么就可以直接回放了。也没什么需要注意的,输入命令即可。

monkeyrunner monkey_playback.py <script.mr>

按照脚本回放之后,就可以在设备上,看到正在回放我们之前录制好的脚本了。

3、录制的脚本

最后再来阅读一下,之前录制好的脚本。

语法非常的简单,大概能猜出来在干什么,无非是对一些坐标点进行点击,输入了message子类的。如果熟练的话,录制的脚本是可以自行修改的,避免有一点错漏而导致完全重新录制,可以将多次录制的结果,拼接在一起。

四、录制和回放的源码

既然都是用 Python 脚本写的,我们可以研究一下它的源码的。

monkey_recorder.py 的远吗非常的简单。

可以看到,实际上有效的代码就是,recorder.start 这一句。

而 monkey_playback.py 的代码就比较多了,需要对录制好的脚本进行解析。

五、结语

MR 就是一个基于坐标的自动化测试方案,对于录制好的脚本,它并不知道是在测试什么,所以在运行脚本之前,需要手动打开我们的待测试 App。

公众号的文章,为了排版清晰,代码都是使用的图片。如果需要相关脚本的文件,可以在本公众号回复关键字『 mr录制 』,得到相关 Python 脚本和本文中测试的App。

既然都看到这里了,顺手赞一下吧。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值