上海电气电站集团设备有限公司 贾烨维
Web自动化测试框架的设计与实现
上海电气电站集团设备有限公司 贾烨维
【摘要】随着社会的进步以及科技的发展,各行各业的工作类型趋于多样化和信息化,人们对信息处理的高效化和规范化也愈发迫切。同时,随着科技发展特别是互联网技术的不断普及,各互联网公司的数量不断增加,为了促进web技术的进一步发展,促进互联网公司以及各新型行业的发展,提高web工作人员的职业技术水平迫在眉睫。对此,本文基于web自动化测试框架,研究其在实际工作中的设计理念和实现方式,并对它的优势和不足进行了简单分析。
【关键词】自动化测试;框架设计;Web
进入21世纪以来,随着以阿里巴巴、京东为代表的电子商务飞速发展,Web应用程序作为电子商务的支撑技术,在社会的各个领域内变得越来越重要,而人们也越来越重视Web应用程序的运行质量与效果。但是,传统的测试方法需要程序人员对Web程序的兼容性以及回归性进行反复测验,虽然目前也有很多的录制—回归软件可以实现自动化检测,但是该方法在检验过程中容易发生脚本错误等编码问题,所以程序测试人员需要不断对脚本进行调试,即通过Web自动化测试框架对庞大的Web应用程序进行检测,因此并没有在实质上提高测试的效率。在此背景下,研究出一个维护简单方便的自动化测试框架,以此切实提高Web应用程序的测试效率,对于互联网技术的发展具有重要意义。
由于传统测试工具的诸多局限性,人们逐步尝试通过自动化测试框架来改善这些不足,以此来提高web程序的测试效率。目前,自动化测试框架指的是一个由假设、概念以及为自动化测试提供支持的实践的集合。其可通过管理、控制自动化过程中自变量、因变量参数的变化,进而实现在不同测试条件下测试效率的最大化。
经过这些年的发展,目前发展较成熟的web程序测试框架主要有以下几种:(1)脚本模块化框架:其脚本的通过底层来实现,通过对web应用程序功能上和组件上进行分解,进而抽象并建立对应的脚本;(2)数据驱动测试框架:通过从被测试程序的中提取数据,并载入相应测试编码,再将测试数据载入到原脚本中的一种框架;(3)关键字驱动的测试框架:这种框架在应用程序内相对独立,并可通过使用关键词来测试程序逻辑上的完整性,主要依靠底层对关键字执行相应动作来实现测试功能;(4)测试库构架框架:与脚本模块化不同的是,该框架将web应用程序分解成独立的过程或者一段函数。但是,该框架需要建立可以代表待测程序片段或者模块的功能性库文件。
Web自动化测试发展到今天,具有较强的适应性和比较明显的优势,但与此同时,仍有一些固有的局限性,下面对web自动化测试的优势和局限性进行简单分析。
2.1 自动化测试框架的优势
自动化测试技术是web技术与自动化技术的融合,也完美地继承了前两者的优势,可将其特点总结为以下几个方面:
第一,有助于在极短时间内完成针对应用程序的多类测试项目。web软件测试的过程中,需要进行较繁琐的测试步骤和各种各样的测试内容,通过自动化测试技术可以同时完成以上测试过程,以此大大缩短应用程序的测试时间,这也缩短了应用程序投入市场的时间。
第二,有利于我们对资源的充分利用。自动化测试工具最大程度地发挥了计算机技术的作用,有利于对资源进行分类整理,以此保障资源的充分利用。
第三,有利于下降web应用程序的开发成本。通常情况下,为了保证应用程序的稳定性和最新性,软件在升级前必须进行回归测试。而采用web自动化测试框架后,应用程序的测试工作从繁杂的反复调试工作中解放出来,更多的是依赖先进的网络技术以及完善的测试框架,这可以极大地节约了人力成本。
利用微生物或其组分抑制植物病害的生物防治可代替化学杀真菌剂,也是一种生态的、有效的农业病原菌防治方法。几个研究小组报道了壳聚糖酶的体外抗真菌活性,它们可用于提高植物对不同植物病原真菌的抗性[28-30]。Kouzai等人报道了壳聚糖酶活性在植物抗病性中的分子机制。植物病原真菌在感染过程中改变细胞壁成分,避免宿主裂解酶降解,细胞壁几丁质向壳聚糖的转化可能是病原体的感染原因之一。
2.2 自动化测试框架的局限性
虽然自动化测试框架具有很明显的优势,但仍然不能全面取代传统的手工测试,认识其存在的不足,有利于我们进一步完善web自动化测试工具。其局限性主要表现在以下几点:(1)自动化测试工具并不能测试所有应用程序;(2)自动化测试框架的结果受框架本身的影响很大;(3)自动化测试框架实际上对软件的开发有一定的制约。
3.1 WATF 的需求分析和主要构建工具
通过对现有自动化测试框架的对比分析,笔者可以将WATF的功能需求概括为以下四点:(1)具有维护简单方便的脚本结构,由于程序的捕捉方式会产生脚本的数据硬编码出现错误,因此程序测试员需要根据脚本变化而不断进行修改,以确保脚本可以适应应用程序的变化,这样直接导致测试效率仍然没有得到根本上的提高,因此优秀的WATF需要易于维护的模块化脚本;(2)支持测试环境的还原功能,测试需要有一个自动化执行环境,在运行测试之前可以根据外部条件触发条件进行判断,自动将测试所需测试环境配置好,即为满足回归测试的要求;(3)可根据需要定制测试计划,我们可以设置测试的时间范围,或是根据每天的实际情况,定时构件测试框架,并测试结束时得到的测试报告,这样即使测试失败,也可通过让测试人员知情,增加自动化测试的可靠;(4)支持分布式测试以及并发测试,随着应用程序功能越来越来丰富,测试人员需要测试的项目也越来越多,并且一个测试项目通常包含上千个测试用例,按照顺序依次测试会消耗大量的时间,如果可以并发地测试这些测试用例或者同时测试多个项目,则可以极大地缩短测试时间;另一方面,由于不同的测试任务需要有不同的测试环境,测试框架也应该可以完成分布式测试,并可以实时监管各分布式节点。
根据上述WATF的测试需求,可以初步确定如下主要构建工具:(1)Maven:一种基于项目对象模型来管理项目的构建、文档以及报告的软件项目管理工具,Maven可以对WATF检测出的源代码进行编译打包;(2)Hudson:在Java的基础上开发的持续集成服务器,可以定期监控预先设计好的外部任务,同时具有大量的扩展插件支持,可以保证相关人员提高开发和测试效率;(3)TsetNG:根据JUnit和NUnit思想而构建的运用注释来强化测试的JAVA测试框架。并且改框架解决了JUnit测试框架中出现的大部分问题,不仅可以运用于单元间的测试,还可以用来集成测试以及验收测试;(4)Selenium:一种开源式的Web功能测试工具,其特点在于可以支持css、dom、xpath等方式对Web测试要素进行定位,并且可以支持ie、chrome等多种浏览器。
3.2 WATF 的框架结构
依照上述设计思路以及对目前主流测试框架的分析,并结合Web系统的特点,设计如图1所示的测试框架:
图1 WATF框架结构Figure 1 WATF frame structure
(1)数据层:改框架基于数据驱动,输入的数值和输出的检测值均为变量、所有的测试数据都从数据文件中读取,在测试的执行过程中,该层为例层提供数据。
(2)控制层:这是整个测试框架的驱动,其主要功能是启动自动化测试流程、加载测试数据、调用测试用例和控制报告输出等。
(3)对象层:其主要作用是在测试过程中识别数据。
(4)操作层:判断及验证用例脚本的执行过程,并生成日志目录。
(5)用例层:包含所有用例脚本和函数库文件。在框架测试过程中,可以结合被测应用对象的特点,将某些公共可共享模块写成函数放入到库文件中,有利于减少冗余脚本,便于后期的维护。
(6)报告层:在测试结束后,框架将测试的结果写入对应的报告文件中,即为报告层。
3.3 技术实现案例
WFAF测试技术能够识别出与测试对象无关的外部支撑函数,例如加载程序所需的数据文件、启动测试环境必需的文件等,并将它们打包放入Controller文件中,使其可以成为封装完好可执行文件。当程序测试员进行测试时,只需提前修改好对应数据文件、用例描述文件和配置文件,然后运行之前封装完好的Controller.exe文件,即可开始自动化测试,在自动运行完测试程序后,测试框架便可自动生成一份测试报告,报告中即包含所测项目的测试结果。
WATF技术通过提高web应用程序的测试效率,达到节约测试成本的目的。在试验过程中,可将WATF自动化测试应用于CDMS系统的测试,表1是对CDMS系统3个模块共500多个测试用例的测试,并分别使用WATF技术与手工技术进行检测,通过对比其所用时间,其结果如表1所示。通过对比数据可以发现,测试相同项目,使用WATF技术可以使测试所用时间大大缩短。
表1Table 1
本文分析了现阶段的自动化测试框架的优势和不足,提出了一种基于Web的自动化测试框架(WATF),WATF具有检测效率高、自动化程度高、可扩展性强等优势。但研究人员还需根据后续应用中出现的问题,进一步研究并不断完善WATF技术。
参考文献
[1]任乐兵.网络管理系统的Web自动化测试设计与实现[D].西安电子科技大学,2007.
[2]汪晓波.Web应用自动化测试工具的设计实现及应用[D].北京邮电大学,2012.
[3]杨丽晶.商务网站的Web自动化测试设计与实现[D].中国海洋大学,2011.
作者简介:
贾烨维(1984—),男,硕士,工程师,研究方向:软件开发。