基于monkeyrunner的Android应用自动化测试框架的研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:kingwaaaa
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对Android手机应用软件测试,提出了基于monkeyrunner框架的自动化测试解决方案。对于Android手机常用的测试场景给出了具体的实现方法,测试结果表明,通过基于monkeyrunner的Python脚本实现测试用例自动化,减少了重复和烦琐的手工测试,提高了Android手机应用测试的效率,节约了人力成本,缩短了软件开发周期。
  关键词:Android;自动化测试框架;monekyrunner;Python
  中图分类号:TP311.1
  文献标识码:A
  文章编号:1009-3044(2019)34-0234-03
  1 背景
  自2011年以来,Android -直是全球最畅销的智能手机操作系统,截至2018年12月,Google Play商店拥有超过260万个应用程序[1]。随着手机应用的功能越来越复杂,更新迭代越来越快,传统的手工测试已经不能满足要求,Android手机应用自动化测试的需求越来越迫切。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程[2],通过所开发的软件测试工具、脚本等来模拟用户行为,按照事先设计好的路径,完成固定的流程和操作,实现替代人工重复性的工作。相对于手工测试,自动化测试具有良好的可操作性、可重复性和高效率等特点。软件自动化测试是提高测试效率、覆盖率和可靠性等的重要手段,它是软件测试不可分割的一部分。常用的Android自动化测试框架有monkey,monkeyrnner,Robotium,UIAutoma-tor等,本文主要介绍基于monkeyrunner框架的Android应用自動化测试。
  2 monkeyrunner简介
  monkeyIunner提供了一个API,可以通过这个API在An-droid代码之外控制Android设备或模拟器,通过monkeyrunner,可以编写自动化测试脚本程序去安装一个Android应用程序或测试包并运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站[3]。monkeyrunner API可以跨多个设备或模拟器,可以在同一时间接上所有的设备或一次启动全部模拟器,也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。由于monkeyrunner是一个API工具包,可以基于PYthon模块和程序开发一整套系统,以此来控制Android设备。
  monkeyrunner API由三个模块组成,分别为MonkevRunner,MonkeyDevice,Monkeylmage。MonkeyRunner提供了将monkev-runner连接到设备或模拟器的方法,它还提供了为monkeyrunner程序创建UI以及显示内置帮助的方法;MonkeyDevice提供了安装和卸载软件包,启动Activity以及向应用程序发送键盘或触摸事件的方法,还可以使用它来运行测试包;Monkeylmage提供捕获屏幕,将位图图像转换为各种格式,比较两个Monkeylmage对象以及将图像写入文件的方法[4]。
  3 开发环境搭建
  本节主要介绍怎样在Windowsl0 64位操作系统下搭建Android开发环境,需要提前准备好JDK(Java Development Kit),SDK(Software Development Kit)和Python安装文件。根据作者的经验,JDK和SDK安装过程相对简单,主要是安装完成后配置相应的环境变量略显复杂,因此下面主要介绍JDK和SDK环境变量的配置。由于Python安装和配置都很简单,且相关资料很多,在此不再赘述。
  3.1 JDK环境变量的配置
  JDK是Java语言的软件开发丁具包,它是整个Java开发的核心,它包含了Java的运行环境,Java工具和Java基础的类库[5]。在电脑上安装好JDK后,按照下面的步骤配置JDK的环境变量。
  Step 1:鼠标右键点击“我的电脑”图标,选择属性一高级系统设置一高级一环境变量。
  Step 2:新建系统变量,变量名为:JAVA_HOME,变量值为:C:\Program Files\Java\j dkl.8.0_191,也就是安装JDK的根目录。这里需要注意的是,每个人JDK安装路径可能不一样,需要根据自己JDK实际安装路径填写,如图2所示。
  3.2 SDK环境变量的配置
  Android SDK.即Android软件开发工具包,是软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。为Android提供了必要的API库和开发工具来构建,测试和调试应用程序[6]。简单来讲,An-droid SDK可以看成用于开发和运行Android应用的一个软件。SDK不需要安装,将下载好的SDK压缩包解压到本地电脑相应的目录下即可,然后按照下面的步骤配置SDK的环境变量。
  Step 1:鼠标右键点击“我的电脑”图标,选择属性一高级系统设置-高级一环境变量。
  Step 2:新建系统变量,变量名为:ANDROID_HOME,变量值为:D:\android-sdk_r24.4.1-windows\android-sdk-windows,也就是前面提到的SDK压缩包解压到本地电脑后的路径。
  Step 3:修改系统环境变量Path,在Path中新建%AN-DROID_HOME% \platform-tools和%ANDROID_HOME% \tools,如图5所示。
  4 自动化测试实例
  本文测试所用手机为酷派cooll dual,型号为C106-9,手机Android版本为6.0.1。测试电脑为Windowsl0 64位操作系统,所有测试脚本都是基于Python 3.7.0开发。在进行测试之前,请将手机通过数据线连接至测试电脑,确保手机进入开发者选项且允许USB调试,并允许安装来自未知来源的应用和后台安装应用。   4.1 自动化实例一
  实例一测试用例:实现自动安装手机QQ,并卸载手机中已经安装好的新浪微博。
  4.1.1测试脚本代码
  测试脚本代码如下,将其保存为install_uninstall.py至电脑d:\scripts目录下。
  4.1.2 执行测试
  将手机通过数据线连接至电脑后,在电脑cmd中执行:monkevrunner d:\scripts\install_uninstall.py,如图7所示。
  4.2 自动化测试实例二
  实例二测试用例:实现手机QQ的自动启动和登录,默认用户名为‘123456’,密码为‘654321’。
  4.2.1 测试脚本代码
  测试脚本代码如下,将其保存为login.py至电脑d:\scripts目录下。
  4.2.2 执行测试
  将手机通过数据线连接至电脑后,在电脑cmd中执行mon-keyrunner d:\scripts\login.py,如图9所示。
  4.3 自动化测试实例三
  实例三测试用例:实现抖音的自动启动和自动划屏播放下一个视频的功能,并将每个视频截屏后保存至本地电脑。
  4.3.1 测试脚本代码
  测试脚本代码如下,将其保存为douyin.py至电脑d:\scripts目录下。
  4.3.2 执行测试
  将手机通过数据线连接至电脑后,在电脑cmd中执行:monkeyrunner d:\scripts\douyin.py.如图11所示。
  5 结束语
  本文提出了一种基于monkeyrunner框架的Android应用自动化测试方案,根据Android常用的测试场景给出了具体的实现方法,这些方法可以广泛适用于Android手机应用的功能测试以及回归测试等。当然monkeyrunner也有它的不足,例如點击和拖拽方法需要获取坐标,但坐标依赖于手机屏幕分辨率,如果手机屏幕分辨率一旦改变,就会使得相应的操作可能无效,因此monkeyrunner脚本代码的复用率和可移植性比较差,这时就需要寻求其他更好的测试方案。
  参考文献:
  [1] Android (operating system)[EB/OLl. https://en.wikipedia.org/wi-ki/Androidjoperating_system).
  [2]李龙,李向函,冯海宁,等.软件测试实用技术与常用模板[Ml.北京:机械工业出版社,2010.
  [3] monkeyrunner[EB/OL]. https://developer. android. com/studio/test/monkeyrunner.
  [4]许奔.深入理解Android自动化测试[M].北京:机械工业出版社,2016.
  [5]支艳强,谢文阁,王丽丽.基于JDK的Java集成开发环境的设计和实现[J]‘大众科技,2011(9):9.
  [6]周宇,尹生强,王冬青,等,基于Eclipse和Android系统的App开发平台搭建研究[J].青岛大学学报:工程技术版,2016,31(3):50.
  【通联编辑:谢媛媛】
  收稿日期:2019-10-08
  作者简介:王佳明(1984-),男,湖北洪湖人,硕士研究生,主要研究方向为软件测试。
其他文献
摘要:随着计算机水平的发展,互联网时代给社会经济文化等产生巨大的冲击,云时代已经进入我们的生活,随着业务应用对于转发速度、端口密度、扩展性、安全性、稳定性的要求越来越高,陈旧的三层架构设计已经无法满足当今云时代。该文从提升运维的灵活度、提升数据中心的扩展性、应用流量模式出发提出一种云时代新的网络系统结构。  关键词:云平台;架构设计  中图分类号:TP393.02 文献标识码:A  文章编号:10
摘要:计算机技术是时代发展的助力器,当今社会发展进步,离不开计算机技术的运用。电子商务是计算机技术发展下的产物,不离开计算机技术的有力支撑。与此同时,电子商务的发展,推动计算机技术的进步,两者是相互促进的关系。对此,本文着重分析计算机技术与电子商务之间的关系,论述计算机技术在电子商务运营中的应用,提出计算机技术在电子商务安全中的应用。  关键词:计算机技术;电子商务;发展;应用  中图分类号:TP
当前我国农村电子商务发展较快,在发展过程中存在着项目一哄而上缺乏甄别、选品雷同性大缺乏特色、农民网络知识欠缺、网店缺乏持续发展等问题。另外,道路、网络、物流、金融
摘要:以六盘水师范学院的大学生为研究目标,通过对该校大学生寻找兼职的途径、从事的兼职和自己学业的关系以及通过兼职获得的收获等进行调研,分析大学生的兼职状况,并在最后提供了合理的建议。  关键词:六盘水师范学院;大学生;兼职;调研  中图分类号:TP319 文献标识码:A  文章编号:1009-3044(2019)34-0262-01  随着社会的发展和学生需求的增加,大学生兼职情况屡见不鲜。关于大
摘要:中国人口老龄化形势越来越严峻,用于老年人的社会保障支出将持续增长,养老问题的严重性和必要性浮出水面。采用先进的技术手段服务于养老事业的项目目前还处于起步阶段,本文分析了智慧养老国内外的现状,并阐述了智慧社区养老系统关键技术,进一步阐述了物联网技术、可穿戴设备、大数据技术等在智慧社区养老系统构建中主要意义和实现方式。  关键词:智慧社区养老;物联网;大数据;云计算;虚拟现实  中图分类号:TP
摘要:论文从APP的需求分析入手,重点阐述了基于Android的智能导购系统“优购”的使用对象、功能、市场前景等方面。该软件重要适用人群分别为消费者与超市管理者,对于消费者而言,使用该款APP不仅可以帮他们轻松地找到所需商品,而且可以为他们提供同类商品间的差异等功能,帮他们做出有效建议;而对于超市管理者而言,他们不仅可以实时查看商品销售情况,而且可以发布各种电子优惠券从而促进消费者购买欲的等功能。
摘要:近年来,研究生的数量与日俱增,在带来优质人才储备量提升的同时,也使得研究生的管理工作面临严峻挑战。新时期,如何做好研究生的管理工作,则需要把握“互联网 ”带来的便捷优势,探索思政教育新模式。本研究以此为核心,从当前研究生思政教育工作的弊端着手,明确互联网 思政教育对研究生管理的有效性,并提出管理策略,为研究生管理工作的有效性探索新方案。  关键词:“互联网 ”;新时期;研究生管理;思政教育;
摘要:随着信息技术及智能化技术的大力发展,电子工程技术在近些年来获得了飞速的进步,并且在各个行业各个领域中的应用非常广泛,也受到了更多专业领域技术人员的关注。该文以电子工程技术为研究对象,通过对电子工程技术定义、特征等内容的简单概述,指出电子工程技术未来的发展趋势,并提出促进电子工程技术发展的策略,从理论上为该行业的进步提供一定的依据,促进其更好更快地发展。  关键词:电子工程技术;发展趋势;电子
为了减轻或消除环境问题带来的生态风险后果,避免环境恶化,合理利用有效资源,进而促进城市的可持续发展,就需要对城市的生态环境进行评价来获取基础信息,鉴于此,本文利用保定市现有的2016年遥感数据和统计资料,结合研究区的实际情况和数据状况,选取了VCI、BAI、WDI、LDI4个指标构建出EI来对保定市的生态环境进行评价,研究结果表明:整个保定市的EI值为41.46,整体的生态环境状况"一般",植被覆
为了调查大学生的消费现状,以六盘水师范学院的大学生为例,采用问卷调查等方式收集相关数据,并对数据进行整理和统计,分析出六盘水师范学院大学生消费状况,为学生合理消费提