移动测试基础 APP 自动化测试中 Monkey 和 MonkeyRunner

graf · 2016年12月01日 · 最后由 0x88 回复于 2016年12月02日 · 1712 次阅读

在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程。今天就简单说说,在 Android 测试中常用的测试包括:Monkey 和 MonkeyRunner。

Monkey 是一个命令行工具,可以运行在模拟器里或实际设备中,它是一种轻量级的性能测试工具。它向系统发送伪随机的事件流,实现对正在运行的应用程序进行压力测试。

Monkey 包括许多选项,包括:基本配置选项,;运行约束选项;事件类型和频率;调试选项。运行的时候,它生成事件,并把它们发给系统。同时,Monkey 还对测试中的系统进行监测。如果限定了 Monkey 运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。如果应用程序崩溃或接收到任何失控异常,Monkey 将停止并报错。如果应用程序产生了应用程序不响应的错误,Monkey 将会停止并报错。按照选定的不同级别的反馈信息,在 Monkey 中还可以看到其执行过程报告和生成的事件。

相对于 Monkey 工具直接运行在设备或模拟器的 adb shell 中,生成用户或系统的伪随机事件流。而 MonkeyRunner 工具则是在工作站上通过 API 定义的特定命令和事件控制设备或模拟器。提供了一个 API,使用此 API 写出的程序可以在 Android 代码之外控制 Android 设备和模拟器。 通过 MonkeyRunner,可以写出一个 Python 程序去安装一个 Android 应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。MonkeyRunner 工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件。

功能包括:

多设备控制:monkeyrunner API 可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。

App 功能测试: monkeyrunner 可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。

回归测试:monkeyrunner 可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。

TestBird - 手游和 App 自动化测试平台

共收到 1 条回复 时间 点赞

monkeyrunner 是连亲生父亲 google 都不管的,也没有多少人用了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册