CN106407112A - 基于Selenium和TestNG的自动化测试方法 - Google Patents

基于Selenium和TestNG的自动化测试方法 Download PDF

Info

Publication number
CN106407112A
CN106407112A CN201610814485.7A CN201610814485A CN106407112A CN 106407112 A CN106407112 A CN 106407112A CN 201610814485 A CN201610814485 A CN 201610814485A CN 106407112 A CN106407112 A CN 106407112A
Authority
CN
China
Prior art keywords
test
selenium
testng
method based
testing method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610814485.7A
Other languages
English (en)
Inventor
刘斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201610814485.7A priority Critical patent/CN106407112A/zh
Publication of CN106407112A publication Critical patent/CN106407112A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于Selenium和TestNG的自动化测试方法,涉及Web自动化测试框架,其将Selenium和TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。本发明降低了各测试场景之间的耦合度,实现数据驱动测试,方便脚本的维护,降低自动化测试脚本维护成本,提高了Web自动化测试效率,提高测试的可靠性,避免人为因素。

Description

基于Selenium和TestNG的自动化测试方法
技术领域
本发明涉及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;能够支持多线程并发测试,可以调用不同浏览器测试,实现远程不同浏览器兼容性测试;页面对象和方法可复用,测试数据易于维护和管理,降低各测试场景之间的耦合度;同时,支持套件测试、分组测试、依赖测试、异常测试、忽略测试,方便组织测试场景;并且,支持失败重运行,可以单独重运行执行失败的用例。可以结合持续集成工具,实现自动更新测试环境、自动备份还原测试数据库,做到真正无人值守的高效的自动化测试。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (5)

1.基于Selenium和TestNG的自动化测试方法,其特征在于,将Web应用程序测试工具Selenium和开源自动化测试框架TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。
2.根据权利要求1所述基于Selenium和TestNG的自动化测试方法,其特征在于,新建java工程,新建libs目录,将所需jar包复制到libs目录下,并且将jar包引入到工程的编译路径下。
3.根据权利要求2所述基于Selenium和TestNG的自动化测试方法,其特征在于,新建目录,其中data目录存放测试数据,object存放页面的对象和方法,scenario存放测试场景,commmon存放公共类。
4.根据权利要求3所述基于Selenium和TestNG的自动化测试方法,其特征在于,运行BaiduDemoScenario.java,运行结束之后生成测试报告。
5.根据权利要求4所述基于Selenium和TestNG的自动化测试方法,其特征在于,在浏览器访问index.html:若一个测试类中有多个@Test需要设置执行顺序,则使用属性dependsOnMethods在@Test注释。
CN201610814485.7A 2016-09-09 2016-09-09 基于Selenium和TestNG的自动化测试方法 Pending CN106407112A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610814485.7A CN106407112A (zh) 2016-09-09 2016-09-09 基于Selenium和TestNG的自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610814485.7A CN106407112A (zh) 2016-09-09 2016-09-09 基于Selenium和TestNG的自动化测试方法

Publications (1)

Publication Number Publication Date
CN106407112A true CN106407112A (zh) 2017-02-15

Family

ID=57999156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610814485.7A Pending CN106407112A (zh) 2016-09-09 2016-09-09 基于Selenium和TestNG的自动化测试方法

Country Status (1)

Country Link
CN (1) CN106407112A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562626A (zh) * 2017-08-31 2018-01-09 国家电网公司 一种封装Selenium和Sikuli实现Web自动化测试的方法
CN107678963A (zh) * 2017-09-27 2018-02-09 国云科技股份有限公司 一种基于java的接口自动化测试方法
CN108491319A (zh) * 2018-02-11 2018-09-04 广州小百合信息技术有限公司 Web自动化测试方法及基于该方法的系统
CN109240926A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种软件兼容性测试装置及方法
CN109800154A (zh) * 2018-12-15 2019-05-24 深圳壹账通智能科技有限公司 测试数据的加载方法、装置、计算机设备及存储介质
CN111241000A (zh) * 2020-04-26 2020-06-05 四川新网银行股份有限公司 基于cucumber测试工具的分层自动化测试方法
CN111459821A (zh) * 2020-04-01 2020-07-28 汇通达网络股份有限公司 一种基于TestNG的软件自动化单元测试方法
CN111913889A (zh) * 2020-09-11 2020-11-10 中移(杭州)信息技术有限公司 一种测试系统搭建方法及测试系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984624A (zh) * 2014-04-29 2014-08-13 北京京东尚科信息技术有限公司 一种网页自动化测试方法及系统
US20140380281A1 (en) * 2013-06-24 2014-12-25 Linkedin Corporation Automated software testing
CN105095059A (zh) * 2014-04-15 2015-11-25 阿里巴巴集团控股有限公司 一种自动化测试的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140380281A1 (en) * 2013-06-24 2014-12-25 Linkedin Corporation Automated software testing
CN105095059A (zh) * 2014-04-15 2015-11-25 阿里巴巴集团控股有限公司 一种自动化测试的方法和装置
CN103984624A (zh) * 2014-04-29 2014-08-13 北京京东尚科信息技术有限公司 一种网页自动化测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LICHAO330530: "selenium+java+testing+pageObject深入理解自动化测试框架", 《HTTPS://BLOG.CSDN.NET/LICHAO330530.ARTICLE/DETAILS/51840757》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562626A (zh) * 2017-08-31 2018-01-09 国家电网公司 一种封装Selenium和Sikuli实现Web自动化测试的方法
CN107678963A (zh) * 2017-09-27 2018-02-09 国云科技股份有限公司 一种基于java的接口自动化测试方法
CN108491319A (zh) * 2018-02-11 2018-09-04 广州小百合信息技术有限公司 Web自动化测试方法及基于该方法的系统
CN109240926A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种软件兼容性测试装置及方法
CN109800154A (zh) * 2018-12-15 2019-05-24 深圳壹账通智能科技有限公司 测试数据的加载方法、装置、计算机设备及存储介质
CN111459821A (zh) * 2020-04-01 2020-07-28 汇通达网络股份有限公司 一种基于TestNG的软件自动化单元测试方法
CN111459821B (zh) * 2020-04-01 2023-05-30 汇通达网络股份有限公司 一种基于TestNG的软件自动化单元测试方法
CN111241000A (zh) * 2020-04-26 2020-06-05 四川新网银行股份有限公司 基于cucumber测试工具的分层自动化测试方法
CN111241000B (zh) * 2020-04-26 2020-08-21 四川新网银行股份有限公司 基于cucumber测试工具的分层自动化测试方法
CN111913889A (zh) * 2020-09-11 2020-11-10 中移(杭州)信息技术有限公司 一种测试系统搭建方法及测试系统

Similar Documents

Publication Publication Date Title
CN106407112A (zh) 基于Selenium和TestNG的自动化测试方法
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
CN101739339B (zh) 一种基于程序动态依赖关系的软件故障定位方法
WO2020233330A1 (zh) 批量测试方法、装置及计算机可读存储介质
CN102331967B (zh) 芯片验证测试用例的管理方法
Ghoshal et al. Provenance from log files: a BigData problem
CN104407971A (zh) 自动化测试嵌入式软件的方法
Bento et al. Automated analysis of distributed tracing: Challenges and research directions
CN104699601A (zh) 用于执行状态机驱动的注入的方法和系统
CN103294596B (zh) 一种基于程序不变量的合约式软件故障预警方法
CN101908006B (zh) 一种基于gcc抽象语法树的缓冲区溢出漏洞检测方法
CN103577310A (zh) 记录软件调试日志的方法以及装置
Sinha et al. Predictive analysis for detecting serializability violations through trace segmentation
JP2016100006A (ja) パフォーマンス試験のためのベンチマーク・アプリケーションを生成する方法および装置
CN107968833A (zh) 一种基于执行路径的云应用性能监测方法
CN110515754A (zh) 神经网络处理器的调试系统及方法
Lindvall et al. Bridging the software architecture gap
US9069647B2 (en) Logging and profiling content space data and coverage metric self-reporting
Hryszko et al. Bottlenecks in software defect prediction implementation in industrial projects
CN110750582B (zh) 数据处理方法、装置和系统
CN106155665A (zh) 符合性举证系统及方法
US8495542B2 (en) Automated management of verification waivers
CN113626288B (zh) 故障处理方法、系统、装置、存储介质和电子设备
Vierhauser et al. Evolving systems of systems: Industrial challenges and research perspectives
CN104536878A (zh) 一种验证并发程序中违反原子性错误是否被正确修复的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215

RJ01 Rejection of invention patent application after publication