• 1. 基于MonkeyRunner的自动化测试框架 谢蓉 2014-10-24
  • 2. 一. MonkeyRunner的简介 所在目录: 本框架所用到的三个类: 1. MonkeyDevice: [Android SDK所在目录]\tools\lib\com\android\MonkeyDevice.class 2. MonkeyRunner: [Android SDK所在目录]\tools\lib\com\android\MonkeyRunner.class 3. EasyMonkeyDevice: [Android SDK所在目录]\tools\lib\com\android\EasyMonkeyDevice.class
  • 3. 二. 运行MonkeyRunner 的前期准备自动化测试的前提是要能获得当前手机的UI信息,而Hierarchy Viewer的出现给自动化测试人员带来了极大的便利。 Hierarchy Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行通信。 开启Android手机上View Server的步骤: 1. 将手机Root:采用一键Root,Root大师等; 2. 开启手机上的View Server; 3. 设置手机上的ro.secure为0,ro.debuggable为1,具体命令如下所示:
  • 4. 三. 自动化测试框架总图安装和登录小区公告号码通论坛圈子.对话办事办证二手市场拼车宠物......工具模块截图文件夹驱动程序小区公告主操作模块卸载apk
  • 5. 1. 驱动功能的实现 这里的MonkeyAutoTest是自动化测试脚本(一般情况下,会由测试开发团队人员进行修改);result里面是用来存放各模块的运行截图;AutoTest.bat便是我们可以用来操作的批处理文件。 (ps:这里的AutoTest.bat中有个简单的小处理,就是bat中会将它所在的目录地址通过新建环境变量的方式保存起来,然后在python脚本文件中使用该新建的环境变量。)
  • 6. 运行前提条件: 1. 一定要保证手机是通过USB接口跟pc机相连,或者通过无线设置使得pc机可以访问手机; 2. 确保viewer是开启的。
  • 7. 接下来,在cmd下进入该目录后运行AutoTest.bat。 运行了上面的命令后: 下拉列表中的项是各个功能模块名,你可以任意选择其一来运行。
  • 8. 各功能模块模块具体实现如下(RunAutoTest.py):
  • 9. (本页无文本内容)
  • 10. 2. 结果验证MonkeyRunner作为自动化测试Android系统工具在某些情况下会比某些工具易用一些,比如Robotium,本人没有仔细研究过,所以先不做具体评论,但是MonkeyRunner目前在结果验证这块做得不够灵活,它只能通过截图的方式来进行结果验证。 在此,顺便提一下我后来研究的另一款自动化测试框架Appium,这是目前很多大公司都在研究的东西,对于它自身而言,也还在一个发展的阶段,但即便如此,它的各方面支持,比如结果验证这块就比MonkeyRunner好很多,加上它能对NATIVE+WEBVIEW这种混合App也同样支持,它甚至还能实现对iOS的app实现自动化(有待研究),所以它的好会超出你的想象。
  • 11. 目前的框架中只能将某些操作后的结果进行截图,放到对应的文件夹里,然后人为地进行比对。 路径:[your dir]/AutoTest\result\
  • 12. 四. 改进点1. Dialog,TimePicker等控件不能被捕捉;
  • 13. 2. 上传照片相关功能的控件不能被捕捉。 上图中,点击“拍照上传”和“相册选择”后。
  • 14. 谢谢大家
  • 15. Q&A?!