TestNG框架自动化简述

------Web自动化测试之Webdriver+TestNG--从零到熟练(系列)php

      在作页面自动化测试的时候,有不少语言和框架能够选择,如语言有java,python,php,而框架有各类unittest框架,TestNG框架等等。先前咱们介绍过WebDriver+python作页面自动化的教程,小伙伴们的热情挺高,博客访问量暴涨。前端

那么问题就来了,有的同窗开始学习的就是python,这样就比较容易上手,而有些儿同窗学习的是java,也想学习自动化测试。WebDriver+java作页面自动也很是方便,下面咱们就开始介绍,在TestNG框架下使用WebDriver+java来作页面自动测试。java

1.1   TestNG简介

既然要用TestNG来作自动化测试,咱们就须要先了解一下什么是TestNG?python

TestNG按照其文档的定义是:web

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

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

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

1.2   TestNG的特色

TestNG的特色主要集中在如下几点:框架

Ø  注解。ide

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

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

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

Ø  灵活的运行时配置。

Ø  主要介绍“测试组”。当编译测试,只要问TestNG运行全部的“前端”的测试,或“快”,“慢”,“数据库”等。

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

Ø  灵活的插件API。

Ø  支持多线程测试。

1.3   TestNG的注释

传统的方式来表示JUnit 3中的测试方法是测试本身的名字前缀。标记一个类中的某些方法,具备特殊的意义,这是一个很是有效的方法,但命名不很好的扩展(若是咱们想添加更多标签为不一样的框架?),而非缺少灵活性(若是咱们要经过额外的参数测试框架)。注释被正式加入到JDK 5中的Java语言和TestNG做出选择使用注释注释测试类。

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

(1)@BeforeSuite

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

(2)@AfterSuite

注解的方法将只运行一次此套件中的全部测试都运行以后。

(3)@BeforeClass

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

(4)@AfterClass

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

(5)@BeforeTest

注解的方法将被运行以前的任何测试方法属于内部类的 标签的运行。

(6)@AfterTest

注解的方法将被运行后,全部的测试方法,属于内部类的标签的运行。

(7)@BeforeGroups

组的列表,这种配置方法将以前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。

(8)@AfterGroups

组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。

(9)@BeforeMethod

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

(10)@AfterMethod

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

(11)@DataProvider

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

 该@Test 方法,但愿从这个DataProvider的接收数据,须要使用一个dataProvider名称等于这个注解的名字。

(12)@Factory

做为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。

(13)@Listeners

定义一个测试类的监听器。

(14)@Parameters

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

(15)@Test

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

使用注释的好处:

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

Ø  咱们能够经过额外的参数注解。

Ø  注释是强类型的,因此编译器将标记任何错误。

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

1.4 WebDriver简介

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

   WebDriver经过大量的API函数来模拟用户操做,从而组合各类测试用例。对于其基本原理在此就很少讲了,针对不一样的脚本语言,WebDriver提供了不一样的API,不过大体是相通的,后面咱们将具体讲述.

1.5 本章小结

   本章咱们介绍了TestNG框架的相关知识点,TestNG框架能够很好地帮咱们完成WebDriver+java的页面自动化工做。经过各类注释的灵活运行,可使你的测试用例更加完美,定制符合要求的测试用例。最后咱们简单地介绍了一下WebDriver,这个是作自动化测试的同窗很是熟悉的。从Selenium1.0然后升级到WebDriver,框架功能愈来愈强,咱们的自动化测试工做也就变的至关来讲容易了许多。加上这个框架是开源的,咱们可对其进行二次开发,开发出符合咱们需求的自动化测试工具。

相关文章
相关标签/搜索