网站首页  词典首页

请输入您要查询的论文:

 

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

    王佳明 骆德汉

    

    

    

    摘要:针对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-),男,湖北洪湖人,硕士研究生,主要研究方向为软件测试。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/13 17:57:08