技术分享|TestNG框架自动化简述

2018-08-31 16:50:24

在做页面自动化测试的时候,有很多语言和框架可以选择,如语言有java,python,php,而框架有各种unittest框架,TestNG框架等等。先前我们介绍过WebDriver+python做页面自动化的教程,小伙伴们的热情挺高,博客访问量暴涨。

那么问题就来了,有的同学开始学习的就是python,这样就比较容易上手,而有些儿同学学习的是java,也想学习自动化测试。WebDriver+java做页面自动也非常方便,下面,西安中软卓越的老师就开始介绍,在TestNG框架下使用WebDriver+java来做页面自动测试。

技术分享|TestNG框架自动化简述.jpg

1.1TestNG简介

既然要用TestNG来做自动化测试,我们就需要先了解一下什么是TestNG

TestNG按照其文档的定义是:

TestNG是一个测试框架,其灵感来自JUnitNUnit的,但引入了一些新的功能,使其功能更强大,使用更方便。

TestNG是一个开源自动化测试框架;TestNG表示下一代。TestNG是类似于JUnit(特别是JUnit4),但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于JUnit的,尤其是当测试集成的类。TestNG的创造者是CedricBeust(塞德里克·博伊斯特)

TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中。

1.2TestNG的特点

TestNG的特点主要集中在以下几点:

注解:

TestNG使用Java和面向对象的功能。

支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)。

独立的编译时间测试代码运行时配置/数据信息。

灵活的运行时配置:

主要介绍"测试组"。当编译测试,只要问TestNG运行所有的"前端"的测试,或"""""数据库"等。

支持依赖测试方法,并行测试,负载测试,局部故障。

灵活的插件API

支持多线程测试。

1.3TestNG的注释

传统的方式来表示JUnit3中的测试方法是测试自己的名字前缀。标记一个类中的某些方法,具有特殊的意义,这是一个非常有效的方法,但命名不很好的扩展(如果我们想添加更多标签为不同的框架?),而非缺乏灵活性(如果我们要通过额外的参数测试框架)。注释被正式加入到JDK5中的Java语言和TestNG作出选择使用注释注释测试类。

这里是TestNG的支持列表中的注解:

1@BeforeSuite

注解的方法将只运行一次,运行所有测试前此套件中。

2@AfterSuite

注解的方法将只运行一次此套件中的所有测试都运行之后。

3@BeforeClass

注解的方法将只运行一次先行先试在当前类中的方法调用。

4@AfterClass

注解的方法将只运行一次后已经运行在当前类中的所有测试方法。

5@BeforeMethod

注解的方法将每个测试方法之前运行。

6@AfterMethod

被注释的方法将被运行后,每个测试方法。

7@DataProvider

标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[][],其中每个对象[]的测试方法的参数列表中可以分配。

@Test方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

8@Parameters

介绍如何将参数传递给@Test方法。

9@Test

标记一个类或方法作为测试的一部分。

使用注释的好处:

TestNG的标识的方法关心寻找注解。因此,方法名并不限于任何模式或格式。

我们可以通过额外的参数注解。

注释是强类型的,所以编译器将标记任何错误。

测试类不再需要任何东西(如测试案例,在JUnit3)扩展。

1.4WebDriver简介

做页面自动化不可能不知道Web Driver,也就是我们常说的Selenium2.03.0Selenium3.0主要的特性就是与Web Driver API的集成。Web Driver旨在提供一个更简单,更简洁的编程接口以及解决一些Selenium-RCAPI的限制。Selenium-Web driver更好的支持页面本身不重新加载而页面的元素改变的动态网页。Web Driver的目标是提供一个良好设计的面向对象的API,提供了对于现代先进web应用程序测试问题的改进支持。

Web Driver通过大量的API函数来模拟用户操作,从而组合各种测试用例。对于其基本原理在此就不多讲了。

1.5综述

我们介绍了TestNG框架的相关知识点,TestNG框架可以很好地帮我们完成Web Driver+java的页面自动化工作。通过各种注释的灵活运行,可以使你的测试用例更加完美,定制符合要求的测试用例。最后我们简单地介绍了一下Web Driver,这个是做自动化测试的同学非常熟悉的。从Selenium1.0而后升级到Web Driver,框架功能越来越强,我们的自动化测试工作也就变的相当来说容易了许多。加上这个框架是开源的,我们可对其进行二次开发,开发出符合我们需求的自动化测试工具。

作为一名开发人员,技术是立身的根本,是拴马桩的尊严;对于一个做教育机构,口碑如水是生命之源,是长盛不衰的根本。13年历经风雨依然昂首前行,未来的西安中软卓越同样会恪守初心,以技术立身,培养IT精英,捍卫教育本质。

本文由中软卓越(西安)汇集整理,转载请注明作者及出处。

如需学习java、UI设计、软件测试、Python、大数据、嵌入式、Linxu云计算,请点击咨询,加入我们让你的未来不再迷茫。

关于我们

【中软卓越】-中软国际旗下高端教育品牌,是中软国际有限公司投资的大型人才服务机构,是中软国际人才战略的核心组成部分之一,承担集团发展过程中人才储备和培养的任务;专注IT培训37年,国内高端IT培训品牌,教育部指定官方IT人才培训机构。专注java培训、UI设计培训、软件测试培训、Python培训、大数据培训、嵌入式培训、Linxu云计算培训等培训课程。217家合作院校,880家合作企业,真实项目实战,素质拓展,职业规划。零首付,100%保障就业,先就业,后付款。

最牛逼的毕业学员入职名企享受高薪就业。880家合作企业,年培育学员人数逾6000人,毕业学员就职于中软国际、百度、腾讯、阿里巴巴、IBM、华为科技、中兴通讯、软通动力等知名企业。

还有什么疑问?我们全面为你解答!为您提供一对一专人服务,请点击下方咨询

  • 卓越资讯
  • 猜你想看
  • 常见问题

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。[详细课程]

    软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程;软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。[详细课程]

    软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。[详细课程]

    Python是一种面向对象的解释型计算机程序设计语言,语法简洁清晰,特色之一是强制用空白符作为语句缩进,它常被昵称为胶水语言,能够把用其他语言制作的各种模块。[详细课程]

    UI设计分为实体UI和虚拟UI,互联网说的UI设计是虚拟UI,一般是指对软件的人机交互、操作逻辑、界面美观的整体设计。[详细课程]

    大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。[详细课程]

    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。[详细课程]

    西安市长安北路8号高速大厦三楼

    电话:029-61876930