APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例

转载自:http://www.cnblogs.com/findyou/p/5317156.html#A02_2_2_1
前言
继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告。下一篇为HTTP接口实战(国家气象局接口自动化测试)

目录
二、TestNG简介与基础实例
2.1 TestNG与JUnit对比
2.1.1 JUnit缺点
2.1.2 TestNG是什么?
2.1.3 TestNG的特点
2.2 TestNG注解与基础实例
2.2.1 注解
2.2.2 基础实例1
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
注解的方法将被运行之前的任何测试方法属于内部类的 标签的运行。
@AfterTest
注解的方法将被运行后,所有的测试方法,属于内部类的标签的运行。
@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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值