APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
2018-03-05 14:21
447 查看
目录
二、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 基础实例12.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,谢谢!
官网: http://testng.org/doc/index.html 不错的入门介绍: http://www.yiibai.com/testng/
不能依赖测试
配置控制欠佳(安装/拆卸)
侵入性(强制扩展类,并以某种方式命名方法)
静态编程模型(不必要的重新编译)
不同的适合管理复杂项目中的测试可以是非常棘手
TestNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入了一些新的功能,使其功能更强大,使用更方便。
TestNG是一个开源自动化测试框架;TestNG表示下一代。 TestNG是类似于JUnit(特别是JUnit 4),但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于JUnit的,尤其是当测试集成的类。 TestNG的创造者是Cedric Beust(塞德里克•博伊斯特)
TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中。
TestNG使用Java和面向对象的功能
支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)
独立的编译时间测试代码运行时配置/数据信息
灵活的运行时配置
主要介绍“测试组”。当编译测试,只要问TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
支持依赖测试方法,并行测试,负载测试,局部故障
灵活的插件API
支持多线程测试
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");
}
}
执行结果:
测试报告:
浏览器查看:
概要
详细
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");
}
}
以上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 基础实例12.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.xmlThis is beforeSuiteThis is beforeTestThis is beforeClassThis is beforeMethodThis is a test case 1This is afterMethodThis is beforeMethodThis is a test case 2This is afterMethodThis is afterClassThis is afterTestPASSED: testCase1PASSED: testCase2 =============================================== Default test Tests run: 2, Failures: 0, Skips: 0=============================================== This is afterSuite ===============================================Default suiteTotal tests run: 2, Failures: 0, Skips: 0=============================================== [TestNG] Time taken by org.uncommons.reportng.HTMLReporter@5f8ed237: 217 ms以上TestNG学习基本了解完毕,下一篇将通过对国家气象局提供的天气接口的测试,来讲解HTTP接口的自动化测试,与结果断言。
相关文章推荐
- APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
- APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例
- APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
- Java零基础:一步步教你如何使用eclipse创建项目及编写小程序实例
- java基础总结第一篇(JAVA简介)
- Java基础二维数组代码实例
- Java基础简介
- java基础知识(三)——java编程实例练习(附答案)
- 以实例简介Java中线程池的工作特点
- Java8系列之重新认识HashMap 2016/06/27 | 分类: 基础技术 | 9 条评论 | 标签: HashMap, java8 分享到: 67 原文出处: 前利 简介 Java为数
- 黑马程序员-----Java基础IO流综合实例
- JAVA基础实例(一)
- java基础面向对象与实例
- SysLog简介和java操作实例
- java基础1:Java简介
- Java.util包简介并教您如何开发应用之二-Java基础-Java-编程开发
- Java的反射 基础+简单复制对象实例
- 再学java基础(11) java 线程(sleep,join,yield) 经典实例。
- java成长之路1-1(java简介、基础数据类型、运算符)