基于Selenium和TestNG的自动化测试方法与流程

文档序号:11133842阅读:1095来源:国知局

本发明涉及Web自动化测试框架,具体的说是基于Selenium和TestNG的自动化测试方法。



背景技术:

Selenium是一个用于Web应用程序测试的工具,直接运行在浏览器中,就像真正的用户在操作一样。Selenium支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上;测试系统功能——创建回归测试检验软件功能和用户需求;支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。

TestNG是一个开源自动化测试框架,支持依赖性测试、套件测试、数据驱动测试、失败和重运行、灵活的运行时配置,适合进行高级测试及大型测试套件的测试设计、测试执行。

当前Web自动化测试框架主要有以下两种:1、基于QTP和QC的自动化测试框架;2、基于Selenium的未分层的自动化测试框架。基于QTP和QC的自动化测试框架主要有以下不足:需要安装QTP、QC等非开源工具;对操作系统有限制,只能在Windows下;运行速度较慢;可读性较差;无法设置依赖测试;不方便进行失败重运行。基于Selenium的未分层的自动化测试框架,未进行测试数据、页面对象和方法、测试场景三者分层,主要有以下不足:测试场景和页面对象、页面方法都在一起,不方便维护;不方便进行参数化的数据驱动测试;在较大项目进行实际应用会很困难,维护成本非常高;测试人员必须非常了解业务系统才能编写脚本。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供基于Selenium和TestNG的自动化测试方法。

本发明所述基于Selenium和TestNG的自动化测试方法,解决上述技术问题采用的技术方案如下:所述基于Selenium和TestNG的自动化测试方法,将Web应用程序测试工具Selenium和开源自动化测试框架TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。

优选的,新建java工程,新建libs目录,将所需jar包复制到libs目录下,并且将jar包引入到工程的编译路径下。

优选的,新建目录,其中data目录存放测试数据,object存放页面的对象和方法,scenario存放测试场景,commmon存放公共类。

优选的,运行BaiduDemoScenario.java,运行结束之后生成测试报告。

优选的,在浏览器访问index.html:若一个测试类中有多个@Test需要设置执行顺序,则使用属性dependsOnMethods在@Test注释。

本发明所述基于Selenium和TestNG的自动化测试方法与现有技术相比具有的有益效果是:本发明将Selenium和TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,降低各测试场景之间的耦合度,实现数据驱动测试,方便脚本的维护,使得脚本可读性更高,降低自动化测试脚本维护成本,更加高效的开展Web自动化测试,提高测试的可靠性,避免人为因素。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述基于Selenium和TestNG的自动化测试方法进一步详细说明。

实施例:

本实施所述基于Selenium和TestNG的自动化测试方法,将Web应用程序测试工具Selenium和开源自动化测试框架TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试、依赖测试、多线程测试。

下面以访问百度为例,对所述自动化测试方法进行详细介绍,具体包括如下步骤:

步骤一,新建java工程,新建libs目录,将所需jar包复制到libs目录下,并且将jar包引入到工程的编译路径下;用到的jar包包括Selenium的所有jar包、feed4testng的所有jar包、以及guice-3.0.jar;

步骤二,新建目录,其中data目录存放测试数据,object存放页面的对象和方法,scenario存放测试场景,commmon存放公共类;在data目录下新建xls数据文件,新增列input;在object目录下新建页面对象和方法类,定义页面对象,创建用到的方法;在scenario目录下新建测试场景类,在common目录下新建公共类;

步骤三,运行BaiduDemoScenario.java,运行结束之后生成测试报告;

步骤四,在浏览器访问index.html:若一个测试类中有多个@Test需要设置执行顺序,则使用属性dependsOnMethods在@Test注释。@Test注解是JUnit测试的基础。

使用属性groups在@Test注释,指定testng.xml文件使用<groups>标签实现分组测试;使用<suite>标签实现套件测试;使用属性expectedExceptions在@Test注释,实现异常测试;使用@Test(enabled=false)实现忽略测试;使用@Parameters在beforeClass()方法中参数化,指定testng.xml文件使用<suite>标签下的parallel、thread-count属性,和<parameter>标签实现多线程并发测试。

本实施例所述基于Selenium和TestNG的自动化测试方法,将Selenium和TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,实现三者单独维护。data层用来存放测试数据,object层用来存放页面对象和方法,scenario层用来存放测试场景。测试数据准备人员可以专注于准备测试场景对应的测试数据,无需关心页面对象如何获取,都有哪些方法;页面脚本编写人员可以专注于定义页面对象和封装方法,无需关心如何组装场景,数据如何准备;测试场景设计人员可以专注于场景设置,无需关心页面对象是如何获取的。使得自动化测试操作起来更加容易,同样提高了测试效率。

该自动化测试方法能够支持多种浏览器,如IE8,9,10,11、Firefox、Opera、Safari、Chrome;能够支持多种操作系统,如Windows、Linux、Mac、Solaris;能够支持多线程并发测试,可以调用不同浏览器测试,实现远程不同浏览器兼容性测试;页面对象和方法可复用,测试数据易于维护和管理,降低各测试场景之间的耦合度;同时,支持套件测试、分组测试、依赖测试、异常测试、忽略测试,方便组织测试场景;并且,支持失败重运行,可以单独重运行执行失败的用例。可以结合持续集成工具,实现自动更新测试环境、自动备份还原测试数据库,做到真正无人值守的高效的自动化测试。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1