前言

继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告。下一篇为HTTP接口实战(国家气象局接口自动化测试)

2.2.2.1 新建JAVA工程

2.2.2.2 引入Lib库

2.2.2.3 检查testng报告配置

2.2.2.4 编写测试用例

2.2.2.5 执行用例

2.2.3 基础实例2

2.2.3.1编写测试用例

2.2.3.2执行用例

因原来没有保留相关内容,以下实例均为本次总结再次编写,,如转载还请保留出处与作者姓名Findyou,谢谢!

2.1  TestNG与JUnit对比

为了文章的完整性,从网络摘抄部分文字介绍相关内容。

官网:http://testng.org/doc/index.html

不错的入门介绍: http://www.yiibai.com/testng/

2.1.1 JUnit缺点

  • 最初的设计,使用于单元测试,现在只用于各种测试
  • 不能依赖测试
  • 配置控制欠佳(安装/拆卸)
  • 侵入性(强制扩展类,并以某种方式命名方法)
  • 静态编程模型(不必要的重新编译)
  • 不同的适合管理复杂项目中的测试可以是非常棘手

2.1.2 TestNG是什么?

TestNG按照其文档的定义是:

  • TestNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入了一些新的功能,使其功能更强大,使用更方便。
  • TestNG是一个开源自动化测试框架;TestNG表示下一代。 TestNG是类似于JUnit(特别是JUnit 4),但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于JUnit的,尤其是当测试集成的类。 TestNG的创造者是Cedric Beust(塞德里克•博伊斯特)
  • TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中。

2.1.3TestNG的特点

  • 注解
  • TestNG使用Java和面向对象的功能
  • 支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)
  • 独立的编译时间测试代码运行时配置/数据信息
  • 灵活的运行时配置
  • 主要介绍“测试组”。当编译测试,只要问TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
  • 支持依赖测试方法,并行测试,负载测试,局部故障
  • 灵活的插件API
  • 支持多线程测试

2.2  TestNG注解与基础实例

2.2.1 注解

注解

描述

@BeforeSuite

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

@AfterSuite

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

@BeforeClass

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

@AfterClass

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

@BeforeTest

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

@AfterTest

注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。

@BeforeGroups

按组( @Test(groups= "findyou") )运行时,此注解在组(findyou组)执行之前运行,可做组(findyou组)执行之前,初始化数据准备类工作。

@AfterGroups

按组( @Test(groups= "findyou") )运行时,此注解在组(findyou组)执行之后运行,可做组(findyou)执行之后,数据还原类工作。

@BeforeMethod

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

@AfterMethod

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

@DataProvider

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

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

@Factory

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

@Listeners

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

@Parameters

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

@Test

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

2.2.2  基础实例1

2.2.2.1  新建JAVA工程

新建: NEW --> JAVA Project --> 输入工程名称  --> Finish
详请Google OR 百度

2.2.2.2  引入Lib库

2.2.2.3检查testng报告配置

2.2.2.4 编写测试用例

package findyou.testcase; 
import org.testng.annotations.Test; public class TestCaseStudy {     // test case 1     @Test     public void testCase1() {         System.out.println("in test case 1");     } } 

2.2.2.5 执行用例

执行:右击JAVA文件,Run as -- > TestNG Test

  • 执行结果:

  • 测试报告:

  • 浏览器查看:

概要

详细

2.2.3 基础实例2

2.2.3.1 编写测试用例

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterSuite; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeSuite; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; public class TestngStudy {     // test case 1         @Test         public void testCase1() {             System.out.println("This is a test case 1");         }         // test case 2         @Test         public void testCase2() {             System.out.println("This is a test case 2");         }         @BeforeMethod         public void beforeMethod() {             System.out.println("This is beforeMethod");         }         @AfterMethod         public void afterMethod() {             System.out.println("This is afterMethod");         }         @BeforeClass         public void beforeClass() {             System.out.println("This is beforeClass");         }         @AfterClass         public void afterClass() {             System.out.println("This is afterClass");         }         @BeforeTest         public void beforeTest() {             System.out.println("This is beforeTest");         }         @AfterTest         public void afterTest() {             System.out.println("This is afterTest");         }         @BeforeSuite         public void beforeSuite() {             System.out.println("This is beforeSuite");         }         @AfterSuite         public void afterSuite() {             System.out.println("This is afterSuite");         } } 

2.2.3.2 执行用例

[TestNG] Running:

C:\Users\Albert\AppData\Local\Temp\testng-eclipse--65898469\testng-customsuite.xml

This is beforeSuite

This is beforeTest

This is beforeClass

This is beforeMethod

This is a test case 1

This is afterMethod

This is beforeMethod

This is a test case 2

This is afterMethod

This is afterClass

This is afterTest

PASSED: testCase1

PASSED: testCase2

===============================================

Default test

Tests run: 2, Failures: 0, Skips: 0

===============================================

This is afterSuite

===============================================

Default suite

Total tests run: 2, Failures: 0, Skips: 0

===============================================

[TestNG] Time taken by org.uncommons.reportng.HTMLReporter@5f8ed237: 217 ms

以上TestNG学习基本了解完毕,下一篇将通过对国家气象局提供的天气接口的测试,来讲解HTTP接口的自动化测试,与结果断言。

原创,如转载还请保留出处与作者姓名Findyou,谢谢!

最新文章

  1. DOM、BOM 操作超级集合
  2. STM32f10xxx 之 GPIO口配置
  3. qlikview 扩展插件制作教程-EchartsGeoMap
  4. 窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型
  5. JavaWeb:EL表达式
  6. HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看
  7. eclipse里面设置JVM参数的问题
  8. iOS开发----三目运算符
  9. Android兼容包multidex的开发和构建方法
  10. Java知多少(108)数据库查询简介
  11. 《ASP.NET1200例》高亮显示ListView中的数据行并自动切换图片
  12. 第2章 HelloWorld
  13. ASP.NET MVC 开发中遇到的两个小问题
  14. QT 让窗口(或控件)居中
  15. SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  16. css3绘制腾讯logo
  17. sysbench
  18. 搭建Nuget服务器
  19. Java 实现倒计时(由秒计算天、小时、分钟、秒)
  20. Linux——用户管理简单学习笔记(一)

热门文章

  1. solr使用语法笔记
  2. jquery 选择元素
  3. poj3187-Backward Digit Sums(枚举全排列)
  4. C#_技巧:.net下C++调用C#的dll
  5. ABP理论学习之发布说明
  6. 跟vczh看实例学编译原理——二:实现Tinymoe的词法分析
  7. ASP.NET MVC 过滤器(一)
  8. 用css画出三角形
  9. 页面静态化技术Freemarker技术的介绍及使用实例.
  10. 有关binlog的那点事(二)(mysql5.7.13)