使用Adt自带的工具进行Android自动化测试(二)

在这个系列的上一篇文章中,我们介绍了Monkey的用法,这篇文章将继续介绍Adt自带的另外一个自动化工具MonkeyRunner

MonkeyRunner和Monkey的关系

在这个系列的上一篇文章中,我们介绍了Monkey最常规的一种用法,即进行完全随机的测试(点击文末“阅读原文”可以打开这篇文章查看)。在这种情况下,Monkey会自己产生一些随机的操作指令给自己执行。但是如果想要按照一个特定的指令序列执行,就要借助MonkeyRunner。

MonkeyRunner是一个运行于PC端的程序,它可以把预先定义好的操作指令一条一条发送给Monkey,从而控制Monkey进行更加精确的自动化操作。

其实MonkeyRunner和Monkey的这种关系从名字就能看出来一些端倪。

MonkeyRunner的使用方法

MonkeyRunner发送给Monkey的操作指令是按照特定的协议编写的,这里我们不需要关心协议的具体内容,只需要使用Python编写自动化脚本,调用MonkeyRunner预先定义好的函数。需要说明的是,MonkeyRunner虽然使用到Python,但实际上并不需要安装Python的运行环境,就像前面提到的,使用这个系列介绍的工具进行Android自动化测试都不需要安装其它额外的工具。

在使用MonkeyRunner时,首先需要开启模拟器,或者通过USB连接真实的Android设备。

MonkeyRunner的可执行文件放在sdk的tools目录下,是一个命令行的工具。

你可以在任意位置用Python编写好脚本,再用MonkeyRunner来执行。而且这些脚本只能通过MonkeyRunner执行,不能像其它py文件一样直接通过Python执行。

比如在命令行输入:

D:\Adt\sdk\tools\monkeyrunner D:\sogouqa.py

下面这个脚本调起搜狗手机浏览器,打开菜单并截图,这个脚本示例可以用来检查搜狗手机浏览器的菜单是不是显示正常。

MonkeyRunner支持的功能总结

  • 物理按键操作
  • 屏幕操作(比如点击、长按、拖动)
  • 安装/卸载应用
  • 支持多设备/模拟器
  • 通过控件进行操作
  • 执行shell命令(比如可以直接删除文件)
  • 发送boardcast
  • 录制与回放功能

这里简单介绍一下录制与回放的功能,这个功能并没有一个单独的程序入口,我们同样需要在MonkeyRunner中运行一段脚本:

脚本执行完后就会出现录制与回放的界面:

就是这样一个简单的界面,点击左边的截图会记录一条点击动作,上面的那一排按钮可以增加一些其它的动作,比如延时或者键盘动作。

Export Actions可以保存录制的内容,但保存的并不是Python脚本文件,你同样需要编写另外一段脚本来回放这段录制,除此之外你也可以选择利用刚才录制时的坐标自己编写点击的操作。

使用坐标编写脚本的局限性

MonkeyRunner默认的屏幕操作都是根据绝对坐标,比如需要在刚才的脚本基础上进一步点击菜单上的设置功能,通过截图或者脚本录制工具,你已经知道了设置菜单项的坐标是(72, 684),这样就可以使用MonkeyDevice的touch方法来点击设置按钮:

device.touch(72, 684, "DOWN_AND_UP")

但是很不幸的,我们是用小米1编写的测试脚本,小米1S的分辨率是480×854,如果换成别的设备,分辨率可能会发生改变,设置按钮的位置就不再是(72, 684)。

好在很多情况下控件的位置和大小是按照屏幕的百分比计算的,比如说不管分辨率是多少,搜狗浏览器的设置都会出现在屏幕15%宽、80%高的地方。这样我们就可以根据相对坐标来编写自动化脚本:

还有的情况下,控件的位置和大小并不满足这个规律,比如搜狗浏览器的设置页面,在小米1和小米4两台不同的设备上,一屏能够显示的内容都不一样多,可以看出其中每个项目的相对坐标在这两台设备间很难统一。

最后,如果被测程序改版,对控件重新排序或布局,旧的自动化脚本也可能会失效。

为了解决这个问题,最好按照坐标以外的方式编写自动化脚本。本系列的第三篇文章将会介绍如何利用控件的id编写MonkeyRunner的自动化脚本。

时间: 2024-10-10 17:04:18

使用Adt自带的工具进行Android自动化测试(二)的相关文章

使用Adt自带的工具进行Android自动化测试(三)

在这个系列的上一篇文章中,我们介绍了MonkeyRunner,并提到如果根据坐标来编写自动化脚本的话存在着一定的局限性(点击文末"阅读原文"可以打开这篇文章查看).这篇文章将进一步介绍根据控件的id来编写自动化脚本的方法 根据控件的id来操作控件 从Android 2.3.3开始,MonkeyRunner增加了EasyMonkeyDevice和By这两个类,它们都位于com.android.monkeyrunner.easy包内,借助这两个类,我们就可以根据控件的id来操作控件. 在这

使用Adt自带的工具进行Android自动化测试(一)

在开始自动化测试的时候,我们可能需要一些工具支持.对于Android平台,官方在开发者工具Adt中已经集成了几种可以用于自动化测试的工具.如果使用这些工具,你可以不用为了开始自己的自动化测试而去额外下载安装其它的工具(当然为了Adt的正常使用,Java环境还是必须的).这个系列的文章将会分别对这些工具做出一些简单的介绍. Adt中集成的可以用于自动化测试的工具包括: Monkey MonkeyRunner UIAutomator(仅限Android 4.0以上系统) Monkey最常见的使用场景

使用Adt自带的工具进行Android自己主动化測试(三)

在这个系列的上一篇文章中,我们介绍了MonkeyRunner,并提到假设依据坐标来编写自己主动化脚本的话存在着一定的局限性(点击文末"阅读原文"能够打开这篇文章查看).这篇文章将进一步介绍依据控件的id来编写自己主动化脚本的方法 依据控件的id来操作控件 从Android 2.3.3開始.MonkeyRunner添加了EasyMonkeyDevice和By这两个类.它们都位于com.android.monkeyrunner.easy包内,借助这两个类,我们就能够依据控件的id来操作控件

老猪带你玩转android自定义控件二——自定义索引栏listview

带索引栏的listview,在android开发非常普遍,方便用户进行字母索引,就像微信通讯录这样: 今天,我们就从零到一实现这个具有索引栏的listview. 怎么实现这个控件了,我们应当梳理出一个思路. ①首先应当将字母的索引栏继承与一个控件,通过ondraw方法将字母画出来. ②然后我们应该监听这个字母控件的ontouch事件,来判断用户到底是按了那个字母. ③就是实现这个索引栏与listview的联动,就是将listview滑动到按下字母的位置. 大体流程图如下: 有了前面铺垫,我们引出

Android自动化测试工具实现简述

前言 自动化测试在产品开发和测试中都有着非常重要的作用.在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题:在产品测试阶段,可以节省人力成本和时间成本,并能保证更大范围的覆盖.Android自动化测试工具同样可以节省不少人力和时间成本,对其研究和实现对于提高测试效率具有一定的意义.目前市面上也有不少Android自动化测试工具,本人在现有工具的基础上,加上自己的理解和实践向大家介绍自动化测试工具的原理和实现. 了解自动化测试的一定对Robotium并不陌生,Robotium是一款国外的An

windows 7自带分区工具实现磁盘重分区

在使用电脑时,有时会感觉当前硬盘分区不合理,例如以前使用XP系统,只需10G左右的磁盘空间就够了,而后安装Windows 7,则需要20G左右的空间,如果C盘过小,则会影响Windows 7的正常运行,诸如分区魔法师(PQ)的软件不能与Windows 7兼容,我们完全可以使用Windows 7自带的分区工具,实现无损数据而对磁盘重新分区!下面虾虾就为朋友们介绍详细的分区方法: [一]启动磁盘管理1.在开始菜单中,右键点击『计算机』,在弹出的菜单中点击『管理』. 如出现用户帐户控制窗口,点击『继续

仿百度文库、豆丁文档在线文档带全套工具

这个是非常棒的一套在线文档分享系统源码,仿百度文库.豆丁文档网站源码,在这里完全免费提供给大家学习.在这里无需任何币就可以下载到非常多的精品源码,如果觉得好站长资源做的不错,请帮忙推荐给更多的站长朋友,并且里面还有一个设置说明图.    此套源码非常干净的,不像现在很多所谓VIP源码论坛放大量的垃圾广告文件在里面,更没有在里面加入垃圾加密广告代码.    安装以下软件前,先要在本机装好OFFICE2007   net2.0以上    windows2003 系统   退掉杀毒软件切忌! 1:安装

使用命令行工具将Android应用转换成BlackBerry PlayBook应用

昨天写了篇文章关于Android应用转换的,通过BlackBerry的在线转换工具将Android应用转换成BlackBerry PlayBook应用.有网友反映说方法有点麻烦,所以今天补上新的转换方法:使用命令行工具将Android应用转换成BlackBerry PlayBook应用. 首先要强调的是命令行工具使用起来虽然比较方便,但是对使用者有一定要求.而使用在线的网页进行转换虽然步骤比较多,但是操作比较简单.所以,对于初步接触的同学来讲,建议还是使用上一篇博文的在线转换工具比较好. 如果准

win7系统自带截图工具快捷键是什么?怎么设置快捷键

win7自带的截图工具很好,很强大,比从网上下载的截图工具好用多了,很少会出现问题.但是它能不能像QQ截图工具一样可以使用快捷键呢?今天小编和大家分享下心得,希望能够给你的工作带来快捷. 工具/原料 win7自带截图工具 方法/步骤 点击左下角的"开始"图标,点击"所有程序" 如何给win7自带的截图工具设置快捷键? 出现系统安装的所有程序的名字,找到"附件"--"截图工具" 如何给win7自带的截图工具设置快捷键? 右键单击