自动化测试框架

2018-08-20 19:01孙振
科学与财富 2018年19期
关键词:自动化测试安卓研究

孙振

摘 要:本文通过对于安卓系统应用自动化测试的研究背景和利弊分析,并且分析了自动化测试系统的现状和存在的问题。并且提出了一种新型自动化测试框架来针对于以往自动化测试框架的局限性进行解决。并对自动化测试系统的构造和其中关键的技术难点进行了全面的分析论证,从而使得自动化测试的应用情景得到了极大的拓展,从而能够满足用户的不同诉求。

关键词:手机系统;自动化测试;安卓;研究

一:自动化测试框架的发展和利弊分析

软件测试则是在软件开发运行中不可忽略的重要步骤,在软件投入运行前,工作人员需要对软件进行该软件的功能、稳定性、等方面的相关测试。借助测试发现系统中的漏洞并加以修改,以此持续完善软件的使用的感受,给用户提供良好的体验感。

目前针对软件的测试方法中,我们可以通过手工和自动化两种方式来对软件进行相关的测验。前者是通过人工方式来对软件的各方面性能进行测试。在测试完成后,根据结果记录数据和问题,这种测试方法存在着一定的缺陷:就是测试的效率不高并且容易留下疏漏,目前已经被人们所抛弃。

但是后者因为出色的测试方式,目前被市场上越来越多的公司认可并投入使用,很多国内大型公司看上了自动化测试的优秀前景,随后开发了自己的测试系统。部分公司,如百度,腾讯开展了外包业务来为第三方软件提供测试服务。

就目前而言,安卓所采用的自动化测试框架根本都是通过安卓所提供的ADB来进行,仅仅是在自身架构上做出了一定的改变和调整。但ADB的使用仅仅限于局域网,因此对于场景的要求上存在着统一性,因此大大限制了测试终端和服务器的使用。因此目前的自动化测试框架具有一定的局限性。

然而本文的研究对象的区别是在于建立测试脚本,通过代码模拟来对实际的操作进行推断,借助于自动化框架来进行测试,最终得到一个完整的测试结果,这种测试方法测试速度得到了很大的提升,同时也提高了测试的准确性。这种新的测试框架,节省了大量的人工和时间,应用于软件测试上给软件的开发也带来了很大程度上的便利。

二:测试框架设计方案

将上文阐述的自动化测试的特征作为理论参考的前提下,我们构架并设计了一种新型的自动化测试的方案。在方案中,我们把测试平台和云端平台想结合,因此解放了测试终端的使用,使得测试可以没有场地限制仅仅需要介入网络就能开始进行自动化测试。设计的方案具体构架方式如图1。

自动化测试中的管理系统是一个统一并且集中的管控平台,具体的构成为:测试终端管理、测试用例管理、测试执行管理、测试日志管理、系统管理等功能模块。

具体如图2所示。

其中不同模块具有的功能也不同:

(1)测试终端管理:对管理测试终端进行连接。具体表示为可以使用多个终端来和平台连接进行测试,同时在测试的过程中自动识别其中重要的信息,随后查询测试终端然后分配测试任务。

(2)测试用例模块:接受上传例并导入用例库。记录测试用例中包含着测试时间,版本等不同的信息数据。并且支持各种编辑排序等操作,然后在经过一系列的编辑操作等步骤之后分配适合的终端。

(3)测试执行模块管理:该模块是对于测试的全部过程进行管理,监控测试过程和终端的使用情况。最后将测试结果用图形的方式来表达出来。并且测试进度和测试项目进展可以通过进度条来表示出来。

(4)日志管理:对已完成的测试数据和原始日志进行统计处理和报告制作并用HTML或者Excel来表达出来以便查阅浏览。

(5)系统管理:具有系统配置和管理功能,如用户、备份、操作查看等。

三:实现的技术难点

3.1Appium测试框架

对比Monkey、MonkeyRunner、UiAutomato、Robotium、Appium等测试工具,这些软件的不同之处如下:

1:Monkey可以针对于软件的稳定性进行测试,通过发送随机的指令来对程序处理的稳定性进行考评。。

2:MonkeyRunner由于可以识别Python的编程语言,因此可以實现脚本的录制和回放,这一特点能够针对应用程序进行功能测试以及回归测试;

以上两个测试软件具有一定的共同点:Monkey和MonkeyRunner都是AndroidSDK自带的;

另外UiAutomator自动化测试框架,具有简单的操作性,缺点在于无法通过控件ID来控制;

第三种Robotium支持模拟各种操作的API,缺点是无法进行跨进程的一系列测试;

Appium能过识别转化不同编程语言的脚本。并将解读后的指令分发到不同的测试终端。同时不同进程、平台、应用的测试可以在这个框架中实现,故而这类测试框架目前取得了一定的市场认可率。这几类测试框架的对比如表1所示。

基于对框架的综合功能、性能、稳定性、可用性等多方面的适配,以及跨语言、不需要重新签名、跨平台、跨应用的优点,因此我们选择了Appium的云自动化测试系统应用到本篇研究中。

四:结束语

由于具有强大的优势,越来越多的互联网企业和软件应用开发公司开始采用Android应用的测试技术。

而大量的实际结果和市场信息也验证了自动化测试相比于人工测试具有压倒性的优势。自动化测试可以进行全方面的测试,不留下一点点测试漏洞。并且测试结果准确性高同时耗费时间短,为开发团队节省了大量的隐藏成本,加快了软件的应用进度。

在本篇研究中通过对比现在的局域网内自动化测试方案,得出了对比结果,在结果的参考下分析了每一种测试框架的适用范围和优缺点,结合当下自动化测试中的问题和障碍,对原有框架进行了??,最终设计了一种新的基于云环境的安卓自动化测试方案。通过云端搭建接入测试平台和测试终端完美实现了自动化测试中的无场景限制。这种方案放宽了测试中场景的条件,从而为应用测试提供了很大的帮助。

参考文献:

[1]张新玲,赵霞,张东.云管理平台自动化测试框架研究[J].软件导刊,2013,(10)

[2]鲁程.基于云平台的移动互联网自动化测试系统的研究与实现[D].北京:北京交通大学,2015

[3]高丽萍.云环境下自动化测试的研究与实现[D].西安:西安工业大学,2016

[4]刘翔宇.基于云服务的自动化测试系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2014

[5]马亚明.基于selenium的前端自动化云测试平台[D].南京:南京大学,2015

猜你喜欢
自动化测试安卓研究
iPhone不卡的秘密曝光:安卓也能享受
FMS与YBT相关性的实证研究
辽代千人邑研究述论
文物表情包
EMA伺服控制系统研究
浅谈空调控制器自动化测试
基于多总线结构的电路板测试系统设计研究
一种基于安卓系统的手机侧抓包分析方法
航空航天与国防电子新形势下自动化测试系统的应用
基于CTI—TET和SeleniumWebdriver的Web应用自动化测试框架的设计与实现