写在前面
本文是笔者在阅读了多篇文章后整合而成的,具体参考文献已经忘记了,很早之前写的,现在只是把他放上来而已。
本文主要说明的内容包括:
1.什么是MonkeyRunner
2.如何搭建MoneyRunner的运行环境
3.如何开始我的第一个Monkey Runnner脚本的编写
另附目录一份:
目录
3.2.3 利用uiautomatorviewer来获取控件相关信息
1.什么是MonkeyRunner
monkeyrunner是一个Android自动化测试工具。它提供一个API,运用该API编写的程序可以不用通过Android代码来直接控制Android设备和模拟器,我们可以写一个Python程序对android应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在workstation上等操作。monkeyrunner工具的主要设计目的是用于application
/framework层上的应用程序和设备,我们当然也可以将其用于其它目的。
Monkey Runner和Monkey的区别是什么
monkey运行在设备或者模拟器上边,可以脱离PC运行,其运行时如下图所示。
普遍的做法是将monkey作为一个向待测应用发送随机按键消息的测试工具,验证待测应用在这些随机性的输入面前是否会有闪退或者崩溃。而monkeyrunner则接受一个明确的测试脚本(使用python语言编写的)。
虽然monkey也可以根据一个指定的命令脚本发送按键消息,但其不支持条件判断,也不支持读取界面的信息来执行验证操作。而monkeyrunner的测试脚本中有明确 的条件判断等语句,可用来做功能测试。
总结:
实际操作中,monkey由于缺少必要的条件判断等命令,难以在功能测试上有所作为,只能作为生成一些随机事件的工具,测试应用程序的健壮程度,待测应用崩溃后可以根据monkey打印的日志,再用monkey创建一个重现步骤,供开发调试。monkey服务器模式更适合用于黑盒测试,不建议用于自动化测试。
而Monkeyrunner虽然有Python和Java类库的强大支持,但其自身提供的API有限,还得需要插件扩展其功能。
2.Monkey Runner基础
2.1Monkey Runner环境搭建
Monkeyrunner的环境搭建,需要安装以下工具:jdk、android sdk、python编译器。
1.jdk的安装与配置
1)jdk下载地址
http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载完成后,默认安装即可。
2)jdk环境配置
jdk安装成功后,计算机→属性→高级系统设置→高级→环境变量,在系统变量中,新建JAVA_HOME变量,变量值填写jdk的安装目录。
在系统变量中,编辑Path变量,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
在系统变量中,新建CLASSPATH变量,变量值填写为:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
到此,系统变量配置完毕。
3)jdk环境检查
检验jdk环境是否配置成功,则运行cmd,在cmd窗口中,输入 java -version (java 和 -version 之间有空格)。若如图所示,显示版本信息,则说明安装和配置成功。
2.android sdk安装与配置
android sdk就是指Android专属的软件开发工具包。android sdk中我们最常用的就是tools和platform-tools文件夹中的工具。
1)sdk下载地址
下载地址1:http://developer.android.com/sdk/index.html
下载地址2:http://rj.baidu.com/soft/detail/23485.html?ald
Sdk下载完成后,解压缩到自己的目录,不需要安装。
2)sdk环境配置
sdk安装成功后,计算机→属性→高级系统设置→高级→环境变量,在系统变量中,新建ANDROID_HOME变量,变量值填写sdk中tools和platform-tools的安装目录。
在系统变量中,编辑Path变量,在变量值最后输入%ANDROID_HOME%;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3)sdk环境检查
检验sdk环境是否配置成功,则运行cmd,在cmd窗口中,输入adb。若如图所示,则说明安装和配置成功。
3.Python编辑器安装与配置
python用于支持Monkeyrunner运行,使用python脚本编写用例会大大简化Monkeyrunner用例的编写,且会帮助扩展monkey