最近研究移动端 App 自动化测试,对比多种测试框架后,对 MonkeyTalk 产生了兴趣,记录自己的一些学习心得,希望其他有兴趣的人一起研究。TesterHome 管理员建立了一个MonkeyTalk Wiki 合集,欢迎大家一起补充完善。

MonkeyTalk 是什么?

MonkeyTalk 是一个简单易用,而且跨平台的自动化测试框架,通过录制和回放易于阅读和维护的测试脚本来对 Android,iOS,Hybrid App 进行自动化测试。
monkeytalk
MonkeyTalk 测试框架包括两个主要的部分:MonkeyTalk 集成开发环境和 MonkeyTalk Agents。

MonkeyTalk 有什么特性?

节省时间,费用以及提高团队的产出是我们引入 MonkeyTalk 进行自动化测试的终极目标。MonkeyTalk 也被设计得非常易于使用,无需任何编码经验,即可快速入门。同时,如果你是一位经验丰富的自动化测试工程师,你也可以使用它来建立你自己的自动化测试框架。

如何使用 MonkeyTalk 进行自动化测试?

下载 MonkeyTalk IDE

安装 MonkeyTalk Agent 到被测 App

见我之前写的MonkeyTalk Agent 安装方法介绍

建立新工程

见 doctorQ 写的学习 MonkeyTalk 以及实践

录制测试脚本

关于 MonkeyTalk 命令

MonkeyTalk 把用户操作的每个动作记录为一个命令,格式如下:

Component MonkeyId Action Argument TimeOut ThinkTime ShouldFail....

Component 是指 UI 元素的类型,例如 Button 或者 Input 控件,不同平台命名方式有所不同。
MonkeyId 是用来唯一标识一个元素的特殊标识符。例如,一个 OK 按钮和一个 Cancel 按钮。如果你要匹配某一种类型元素的第一个元素,可以使用 (*) 的方式。
Action 是指 UI 交互,例如点击或者输入事件。
Arguments 是用来描述动作的其他属性,比如输入到一个 Input 中的文本。
TimeOut 是用来定义一个执行的超时时间,确保该命令执行完毕。
ThinkTime 是命令执行前的等待时间,我们也可以用它来等待上一个命令执行完毕。
ShouldFail 是用来定义该命令是否默认应该执行失败。
命令
上述记录的命令也可以通过 MonkeyTalk IDE 直接转化成 MonkeyTalk 语言。点击 MonkeyTalk 选项卡即可切换到脚本编辑器,你可以像编辑文本一样对它进行修改。
脚本

MonkeyTalk 的验证机制

在脚本回放的过程中,MonkeyTalk 需要验证某个特定的 UI 元素是否存在来决定是否继续执行下一步操作。如果你期待的元素不存在,MonkeyTalk 将立即报错。例如,你定义了这样一段脚本:点击 OK 按钮,但当前页面上没有 OK 按钮,脚本就会执行失败。下面是一个示例:

#set slider to 8000
Slider * Select 8000

#verify that label called "CurrentValue" displays 8000
Label CurrentValue Verify 8000

总结

这里只是对 MonkeyTalk 进行一个简单的介绍,MonkeyTalk 的功能非常强大,将继续学习和实践。


↙↙↙阅读原文可查看相关链接,并与作者交流