TestNG 单元测试框架的使用

JUnit让开发人员了解测试的实用性,尤其是在单元测试这一模块上比任何其他测试框架都要简单明了。凭借一个相当简单,务实,严谨的架构,JUnit已经能够“感染”了一大批开发人员。TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。

一:注解的使用

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;public class Annotation {@Testpublic void testCase1(){System.out.println("测试用例1被执行");}@Testpublic void testCase2(){System.out.println("测试用例2被执行");}@BeforeMethodpublic void beforeMethod(){System.out.println("@BeforeMethod:在每个测试方法开始运行前执行");}@AfterMethodpublic void afterMethod(){System.out.println("@AfterMethod:在每个测试方法开始运行结束后执行");}@BeforeClasspublic void beforeClass(){System.out.println("@BeforeClass:在当前测试类的第一个测试方法开始调用前执行");}@AfterClasspublic void afterClass(){System.out.println("@AfterClass:在当前测试类的最后一个测试方法结束运行后执行");}@BeforeTestpublic void beforeTest(){System.out.println("@BeforeTest:在测试类中的Test开始运行前执行");}@AfterTestpublic void afterTest(){System.out.println("@AfterTest:在测试类中的Test运行结束后执行");}@BeforeSuitepublic void beforeSuite(){System.out.println("@BeforeSuite:在当前测试集合(suite)中所有测试程序开始运行之前执行");}@AfterSuitepublic void afterSuite(){System.out.println("@AfterSuite:在当前测试集合(suite)中所有测试程序运行结束之后执行");}
}

运行结果:

@BeforeSuite:在当前测试集合(suite)中所有测试程序开始运行之前执行
@BeforeTest:在测试类中的Test开始运行前执行
@BeforeClass:在当前测试类的第一个测试方法开始调用前执行
@BeforeMethod:在每个测试方法开始运行前执行
测试用例1被执行
@AfterMethod:在每个测试方法开始运行结束后执行
@BeforeMethod:在每个测试方法开始运行前执行
测试用例2被执行
@AfterMethod:在每个测试方法开始运行结束后执行
@AfterClass:在当前测试类的最后一个测试方法结束运行后执行
@AfterTest:在测试类中的Test运行结束后执行
PASSED: testCase1
PASSED: testCase2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================

@AfterSuite:在当前测试集合(suite)中所有测试程序运行结束之后执行

===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

二:依赖测试

import org.testng.annotations.Test;
public class DependentTest {/*** TestNG 依赖测试(使用dependsOnMethods参数实现)* 有时候需要按顺序来调用测试用例,  那么测试用例之间就存在依赖关系* 通过依赖测试,可以在不同的方法间共享数据和程序状态*/// dependsOnMethods={"OpenBrowser"} 表示在OpenBrowser方法被调用后才能执行login方法@Test(dependsOnMethods={"OpenBrowser"})public void login(){System.out.println("login方法被调用");}@Testpublic void OpenBrowser(){System.out.println("OpenBrowser方法被调用");}// dependsOnMethods={"login"} 表示在login方法被调用后才能执行logout方法@Test(dependsOnMethods={"login"})public void logout(){System.out.println("logout方法被调用");}
}

运行结果:

OpenBrowser方法被调用
login方法被调用
logout方法被调用
PASSED: OpenBrowser
PASSED: login
PASSED: logout

===============================================
    Default test
    Tests run: 3, Failures: 0, Skips: 0
===============================================

三:按特定顺序执行测试

import org.testng.annotations.Test;public class SequenceTest {/*** 使用priority参数,可以按特定顺序执行测试*/@Test(priority=2)public void test3(){System.out.println("test3方法被调用");}// enabled=false 跳过这个测试方法@Test(priority=1,enabled=false)public void test2(){System.out.println("test2方法被调用");}@Test(priority=0)public void test1(){System.out.println("test1方法被调用");}@Test(priority=3)public void test4(){System.out.println("test4方法被调用");}}

运行结果:

test1方法被调用
test3方法被调用
test4方法被调用
PASSED: test1
PASSED: test3
PASSED: test4

===============================================
    Default test
    Tests run: 3, Failures: 0, Skips: 0
===============================================

四:测试集合,通过testng.xml方式来执行测试用例

<suite name="Suite"><test name="Test"><classes><!-- 测试集合,执行cn.testng包下的Annotation及test测试类 --><class name="cn.testng.Annotation"/><class name="cn.testng.test"/></classes></test>
</suite> 

五:测试用例的分组,通过testng.xml方式来执行测试用例

import org.testng.annotations.Test;public class Grouping {/*** 测试用例的分组,TestNG使用groups关键字进行分组,用来执行多个Test的测试用例*/@Test(groups={"人"})public void student(){System.out.println("学生方法被调用");}@Test(groups={"人"})public void teacher(){System.out.println("老师方法被调用");}@Test(groups={"动物"})public void cat(){System.out.println("小猫方法被调用");}@Test(groups={"动物"})public void dog(){System.out.println("小狗方法被调用");}}

设置testng.xml

<suite name="Suite"><test name="Grouping"><groups><run><include name="动物"></include></run></groups><classes><class name="cn.testng.Grouping"/></classes></test>
</suite> 

通过testng.xml方式来执行测试用例,结果如下:

小猫方法被调用
小狗方法被调用

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

posted on 2019-03-30 16:48 Ethon 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wakey/p/10627985.html

TestNG 单元测试框架的使用相关推荐

  1. Java接口自动化之TestNG单元测试框架(一)

    上一篇Java接口自动化系列文章:Java接口自动化之log4j日志框架,主要介绍log4j日志介绍.日志三大组成部分及日志实战. 以下主要介绍TestNG的简介.@Test注解及其属性. 01 Te ...

  2. python单元测试框架unittest介绍和使用_Python+Selenium框架设计篇之-简单介绍unittest单元测试框架...

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unittest是一 ...

  3. 华为python自动化测试框架_华为五年自动化测试工程详细解说:unittest单元测试框架...

    一.单元测试框架说明 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元测试 ...

  4. 华为五年自动化测试工程详细解说:unittest单元测试框架

    一.单元测试框架说明 ​单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元测 ...

  5. 华为5年自动化测试工程详细解说:unittest单元测试框架

    一.单元测试框架说明 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元测试 ...

  6. 全面了解Unittest单元测试框架

    一,前言 1,单元测试 软件测试一般按阶段划分为:单元测试,集成测试,系统测试.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证. 单元测试中单元的含义,单元就是人为规定 ...

  7. unittest安装教程_Unittest单元测试框架

    一,前言 1,单元测试 软件测试一般按阶段划分为:单元测试,集成测试,系统测试.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证. 单元测试中单元的含义,单元就是人为规定 ...

  8. maven TestNg 测试框架 not found

    在用TestNG测试框架进行单元测试时,在我的pom.xml中写的依赖: <dependency><groupId>org.testng</groupId>< ...

  9. pytest单元测试框架简介

    一.什么是单元测试框架 单元测试框架是指:在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试. 二.单元测试框架的分类 Java: Juint.TestNG Python: unni ...

  10. 软件测试——Unittest单元测试框架详解

    一,前言 1,单元测试 软件测试一般按阶段划分为:单元测试,集成测试,系统测试.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证. 单元测试中单元的含义,单元就是人为规定 ...

最新文章

  1. 基于DQN强化学习训练一个超级玛丽
  2. linux c 宏判断多条件 #ifdef 和 #if defined 的区别
  3. 如何创建字符串(OC)
  4. 【爬虫剑谱】一卷3章 软件篇-Anaconda的安装及配置
  5. 软件_避免用chrome进行网站配置调试[博]
  6. 科技公司都是如何应对 COVID-19?
  7. 【渝粤教育】国家开放大学2018年春季 8647-21T工程经济与管理 参考试题
  8. tabbar图标大小更改
  9. erp系统用MySQL吗_如何给ERP系统选择合适的数据库?
  10. 综合运用(烤地瓜,搬家具)
  11. 马尔科夫链细致平衡条件
  12. 走马灯如何实现图片自适应
  13. vue 中父子组件传递通信(看图就会了,皮卡皮卡)
  14. AIX上解压缩.tar.Z, .tar.gz, .zip及.tgz
  15. 国际会议latex/overleaf模板
  16. 星环科技:坚持国产自主路线,突破大数据的细分应用场景
  17. wordexport.js导出word 分栏问题
  18. GooglePlay 发布问题汇总
  19. 如何安装小企鹅输入法
  20. 图像处理-直方图的反向投影

热门文章

  1. 二维数组—小学二年级班级座位表
  2. 四川公办二本计算机专业院校排名,四川二本大学排名及分数线
  3. 头条小程序模板全行业合集,头条小程序制作平台分享
  4. OSChina 周五乱弹 —— 有一个朝代红薯不能去
  5. Win10经常断开网络连接的原因
  6. 如何用个人电脑打造量子模拟器
  7. Deepin系统安装摄像头驱动
  8. 计算机网络:网络常用命令的使用及DNS层次查询、SMTP协议分析
  9. 给宝贝女儿雅琪写的顺口溜
  10. 【无标题】计算机网络故障诊断与排除习题集题库及答案