基于Selenium和TestNG的自动化测试方法技术

技术编号:14662696 阅读:128 留言:0更新日期:2017-02-17 09:59
本发明专利技术公开一种基于Selenium和TestNG的自动化测试方法,涉及Web自动化测试框架,其将Selenium和TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。本发明专利技术降低了各测试场景之间的耦合度,实现数据驱动测试,方便脚本的维护,降低自动化测试脚本维护成本,提高了Web自动化测试效率,提高测试的可靠性,避免人为因素。

【技术实现步骤摘要】

本专利技术涉及Web自动化测试框架,具体的说是基于Selenium和TestNG的自动化测试方法
技术介绍
Selenium是一个用于Web应用程序测试的工具,直接运行在浏览器中,就像真正的用户在操作一样。Selenium支持的浏览器包括IE、MozillaFirefox、MozillaSuite、GoogleChrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上;测试系统功能——创建回归测试检验软件功能和用户需求;支持自动录制动作和自动生成.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;能够支持多线程并发测试,可以调用不同浏览器测试,实现远程不同浏览器兼容性测试;页面对象和方法可复用,测试数据易于维护和管理,降低各测试场景之间的耦合度;同时,支持套件测试、分组测试、依赖测试、异常测试、忽略测试,方便组织测试场景;并且,支持失败重运行,可以单独重运行执行失败的用例。可以结合持续集成工具,实现自动更新测试环境、自动备份还原测试数据库,做到真正无人值守的高效的自动化测试。上述具体实施方式仅是本专利技术的具体个案,本专利技术的专利保护范围包括但不限于上述具体实施方式,任何符合本专利技术的权利要求书的且任何所属
的普通技术人员对其所做的适当变化或替换,皆应落入本专利技术的专利保护范围。本文档来自技高网
...

【技术保护点】
基于Selenium和TestNG的自动化测试方法,其特征在于,将Web应用程序测试工具Selenium和开源自动化测试框架TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。

【技术特征摘要】
1.基于Selenium和TestNG的自动化测试方法,其特征在于,将Web应用程序测试工具Selenium和开源自动化测试框架TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。2.根据权利要求1所述基于Selenium和TestNG的自动化测试方法,其特征在于,新建java工程,新建libs目录,将所需jar包复制到libs目录下,并且将jar包引入到工程的编译路径下。3.根据权利要求2所述基于Selenium和TestNG的自动化测试方法,其特...

【专利技术属性】
技术研发人员:刘斌
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1