基于Selenium和TestNG的自动化测试框架论文_胡少英,王铭业,姚驰,姜晓

(南瑞集团(国网电力科学研究院)有限公司 江苏省南京市 210000)

摘要:本文通过对当前典型的自动化测试框架的研究,在开源工具的基础上,设计了分层WEB自动化测试框架,实现了界面元素、测试数据的统一管理,支持数据驱动和测试流程自定义控制。

关键词:自动化测试框架;Selenium;TestNG

water resources information management systemautomated testing framework based on Selenium and TestNG

HU-Shaoying, WANG-Mingye, Yao-Chi, Jiang-Xiao

(NARI GROUP CORPORATION/STATE GRID ELECTRIC POWER RESEARCH INSTITUTE,Nanjing 210000,

China)

Abstract:This paper researched the typical automated testing framework, designed a layered WEB automation testing framework based on open source tools. The framework achieved a unified management interface elements and test data, supported data driven and testing process custom control.

Key words:automated testing; selenium; testNG

1引言

软件测试是保障和提升软件质量的重要手段,为了提高测试测试的速度和效率,全方位保障产品的质量和可靠性,越来越多的产品引入了自动化测试的手段和方法。自动化测试可以有效提高测试效率,而设计良好的自动化测试框架是自动化测试工作成功的关键。

本文讨论了当前典型的自动化测试框架,并结合目前广泛使用的开源测试工具Selenium和TestNG框架,设计了松耦合的分层自动化测试框架。

2常见的测试框架

目前,常见的测试框架主要可以分为三种:录制/回放测试框架、数据驱动的自动化测试框架、关键字驱动的自动化测试框架[1]。

2.1录制/回放测试框架

录制/回放测试框架即通过简单录制测试的操作过程,生成脚本,然后进行回放从而完成测试。录制回放测试框架对测试人员的要求较低,但是这种框架自身也存在明显的缺点,即:生成的脚本为硬编码方式,测试脚本与测试数据为紧耦合,若用户UI发生了变化,就必须重新录制脚步;由于录制方式生成的脚本都是非模块化的线性脚本,难以维护。

2.2数据驱动测试框架

数据驱动(data driven)以数据来控制自动化测试的流程和动作,数据独立于测试用例脚本,通过变量传入脚本,不同的数据文件对应不同的测试用例。这种模式实现了数据和脚本的松耦合,脚本的利用率、可维护性大大提高,但其受界面变化的影响较大。

2.3关键字驱动测试框架

关键字驱动(keyword driven)是数据驱动测试的一种改进类型,它用面向对象的思想将测试逻辑按照关键字进行分解,用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化。主要关键字包括三类:被操作对象(控件)、操作(事件)和值。关键字驱动不仅实现了脚本与数据分离,也实现了测试逻辑和数据的分离、测试描述与具体实现细节分离。关键字驱动测试让脚本的维护工作量减少,其重用性得到了极大的增强。

3 Selenium

Selenium是一个开源的自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样。支持多种浏览器,包括IE、Chrome、firefox等;支持多种语言编写测试脚本,如java、phtyon、net等。包含Selenium IDE、Selenium WebDriver、Selenium Server[2]。

4 TestNG

TestNG是一个设计用来满足广泛的测试需求的测试框架[3],涵盖所有类型的测试,包括单元测试、功能测试、端到端测试和集成测试等,具有灵活的运行时配置,通过使用注解(annotation)来传递参数、进行测试方法分组,并控制测试逻辑流程,为大型集成测试提供了极大方便。

5 自动化测试框架设计

结合软件和测试自动化框架开发原则,本文提出了一个分层测试框架(图一)。

本框架包含四层结构:分别是数据层、控制层、模型层和视图层。

数据层主要包括测试数据和页面元素数据。通过对元素对象的单独管理,实现了界面元素和测试业务的分离,降低了测试用例和页面元素之间的耦合度,减少了页面修改对测试脚本的影响。

控制层用于控制测试的逻辑流程,实现了测试业务逻辑和控制流程的分离,降低脚本之间的耦合性,可针对不同的项目进行用例的灵活组合和扩展。

模型层实现测试业务模型,对测试数据进行解析,实现具体的测试功能。

视图层负责测试过程及结果信息的记录和展示,包括测试日志、测试截图和测试报告等,可方便的对测试过程信息进行跟踪和定位,方便直观地查看测试运行结果。

6 自动化测试框架实现

6.1数据层

本测试框架采用YAML来进行测试数据和页面元素数据的管理。

以系统登陆界面为例,系统页面元素配置及用户数据配置如下:

6.2模型层

模型层对测试数据及页面元素数据进行解析,并实现具体的测试功能。

以系统登陆界面为例,模型层对Yaml数据解析的示例如图四、图五,用户登录系统代码实现如图六。

6.3 控制层

控制层用于控制测试的逻辑流程。本测试框架采用TestNG来驱动模型层的执行。TestNG采用配置文件方式来控制测试流程。TestNG有suite/test/test method三个级别的注解,测试执行过程不再写死在代码中,若系统发生了变更或在进行回归测试时,只需修改XML配置文件,即可定制新的测试流程。图七展示了test method注解。

结语

本文基于Selenium和TestNG提出了自动化测试框架,实现了界面元素的统一管理、分层框架设计,支持数据驱动和测试流程自定义控制。一套成熟的自动化测试框架需要在项目实践中不断改进、持续优化,本框架还需进一步开展自定义对象识别、持续构建方面的研究,以求达到提高效率,保证质量的效果。

参考文献

[1]接卉,兰雨晴,骆沛. 一种关键字驱动的自动化测试框架[J]. 计算机应用研究, 2009,26(3),927-929.

[2]吴伶琳. 基于Selenium的软件自动化测试的研究与应用[J]. 计算机与现代化, 2013,210(2),65-68.

[3] 费丹青,李思易.单元测试工具TestNG和JUnit参数化研究[J]. 福建电脑, 2011,11,44-46.

作者简介

胡少英(1979—),女,通信作者,高级工程师,主要研究方向:水电厂自动化。E-mail:hushaoying@sgepri.sgcc.com.cn。

论文作者:胡少英,王铭业,姚驰,姜晓

论文发表刊物:《电力设备》2018年第14期

论文发表时间:2018/9/18

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于Selenium和TestNG的自动化测试框架论文_胡少英,王铭业,姚驰,姜晓
下载Doc文档

猜你喜欢