当前位置: 首页 > news >正文

TestNG和Junit的区别,测试框架该如何选择?

要想知道两个框架的区别,首先分别介绍一下两个框架。

TestNG是一个java中的开源自动化测试框架,其灵感来自JUnit和NUnit,TestNG还涵盖了JUnit4整个核心的功能,但引入了一些新的功能,使其功能更强大,使用更方便。

它是一个在类中运行测试的框架。它为相应的测试制作类,然后处理它们。TestNG是一个先进的框架,克服了JUnit中的限制。

它也被认为是一个灵活的工具来执行测试,因为它使用相同的类来运行其所有的测试,并管理线程来运行程序,这使得检查测试的整体功能快速。

而TestNG的特点:TestNG可以把测试方法放在Java组中。

TestNG处理单元测试,将参数传入测试方法。

TestNG利用线程可以更好地提高测试性能,因为执行时间减少。

JUnit的一些限制被克服了,因为TestNG支持并行测试的执行。

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一个。

JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

它支持通过编写和测试来运行测试。

JUnit框架最初是基于用于单元测试的SUnit框架,但后来使用Selenium WebDriver对Java进行了更新。

现在,当我们需要在Java中进行测试时,JUnit被作为一个标准。Junit的特点可以归纳如下:JUnit不支持同时运行并行测试。

JUnit框架在Java 8中被更新。

JUnit有助于在编写代码时实现测试驱动的编程。

JUnit现在被许多语言所支持。

所以单纯的从字面意思上看,Junit更加原始一些,而TestNG则是采用了Junit的模式和资源。

所以可以从以下几个方面对二者进行详细的对比:

比较基础

JUnit

TestNG

开发团队

JUnit是由Kent Beck、David Saff、Erich Gamma开发的。Erich Gamma, and Kris Vasudevan。

TestNG是一个测试框架,由Cédric Beust开发。

开源性

JUnit是一个开源的框架,用于触发和编写测试。

TestNG是一个基于Java的框架,是运行测试的一个升级选择。

平行测试

JUnit不支持运行平行测试。

TestNG可以运行并行测试。

注解支持

JUnit不支持高级注解。

TestNG支持高级注解。

依赖性

JUnit中缺少依赖性测试。

TestNG中存在依赖性测试。

分组特性

分组测试在JUnit中是不可能的。

TestNG测试可以被分组并并行运行。

易用性

运行测试需要对JUnit有一定的依赖性。

编写测试和配置它们在TestNG中比JUnit容易。

但是因为Junit是比较基本的核心技术,所以在不少自动化测试工具中,默认支持的还是Junit,比如Selenium  IDE中,如果要导出测试脚本的话,对于Java语言的脚本,支持的框架就是还是Junit。

导出的测试脚本的内容:

相关文章:

TestNG和Junit的区别,测试框架该如何选择?

要想知道两个框架的区别,首先分别介绍一下两个框架。 TestNG是一个java中的开源自动化测试框架,其灵感来自JUnit和NUnit,TestNG还涵盖了JUnit4整个核心的功能,但引入了一些新的功能,使其功能更强大,使用更…...

MySQL安全登录策略

MySQL密码复杂度策略设置 MySQL 系统自带有 validate_password 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL 5.7 及 8.0 版本默认情况下貌似都不启用该插件,这也使得我们可以随意设置密码,比如设置为…...

优化模型验证23:带无人机停靠站的卡车无人机协同配送车辆路径问题、模型、gurobipy验证及结果可视化

带中转hub的卡车无人机车辆路径问题 模型来源为:Wang Z , Sheu J B . Vehicle routing problem with drones[J]. Transportation Research Part B: Methodological, 2019, 122(APR.):350-364. 问题描述: 这篇问题研究了一个带停靠站的卡车无人机路径问题,无人机仅能从起点…...

mongoTemplate Aggregation 多表联查 排序失效问题解决

目录说明说明 接着上一个文章的例子来说:mongoTemplate支持多表联查 排序 条件筛选 分页 去重分组 在按照上一个demo的代码执行后,可能会发生排序失效的问题,为什么说可能呢?每个人负责业务不同,不可能是最简单的dem…...

什么是智慧实验室?

智慧实验室是利用现代信息技术和先进设备将实验室实现智能化和智慧化的概念。通过将各种数据、信息和资源整合在一起,实现实验室设备的互联互通,数据的实时采集、传输、处理和分析,从而提高实验室的效率、精度和可靠性。一、智慧实验室包含多…...

Python abs() 函数

Python abs() 函数Python 数字描述abs() 函数返回数字的绝对值。语法以下是 abs() 方法的语法:abs( x )参数x -- 数值表达式。返回值函数返回x(数字)的绝对值。实例以下展示了使用 abs() 方法的实例:#!/usr/bin/python print "abs(-45) …...

裸辞了,面试了几十家软件测试公司,终于找到想要的工作

上半年裁员,下半年裸辞,有不少人高呼裸辞后躺平真的好快乐!但也有很多人,裸辞后的生活五味杂陈。 面试了几十家终于找到心仪工作 因为工作压力大、领导PUA等各种原因,今年2月下旬我从一家互联网小厂裸辞,没…...

ShardingSphere

1.简介 1.开源的分布式数据生态项目 ShardingSphere-JDBC:轻量级Java框架ShardingSphere-Proxy:数据库代理ShardingSphere-Sidecar(规划中):Kubernetes的云原生数据库代理 2.使用版本:ShardingSphere5.1.1 1.数据库集群架构 1.出现…...

配置Maven

对于刚开始认识的Maven的初学者超级有用的哦!项目统一共享使用一套jar包,由maven统一管理。节省了jar空间,统一jar包版本首先将maven安装完毕测试有没有配置完成,在命令框里面打 mvn -version进行测试maven安装完,第一…...

赛宁网安“网络安全卓越中心”:立足科技创新 推动网安产业高质量发展

​​2月22日上午,网络安全卓越中心CPCOE——圆桌论坛活动在南京召开。本次论坛由南京未来科技城主办,南京赛宁信息技术有限公司承办。论坛上,江苏省科协副主席、南京理工大学教授李千目,江苏省互联网协会副理事长兼秘书长刘湘生&a…...

操作系统题目收录(十四)

1、 有些操作系统中将文件描述信息从目录项中分离出来,这样做的好处是()。 A:减少读文件时的I/O信息量B:减少写文件时的I/O信息量C:减少查找文件时的I/O信息量D:减少复制文件时的I/O信息量 解…...

Qt 第1课、Qt 的窗口组件和窗口类型

GUI 程序的开发原理: GUI 程序在运行的时候,操作系统会为它创造一个消息队列,消息队列用于存储操作系统发过来的系统消息。 用户使用操作系统的过程中,操作系统内核检测到用户的操作(鼠标,键盘&#xff09…...

【Jmeter】ForEach控制器

一、什么是ForEach控制器 ForEach控制器是遍历某个数组读取不同的变量值,来控制其下的采样器或控制器执行一次或多次。而这个数组可以是用户自定义变量,也可以是从前面接口请求中提取到需要的数据,然后进行遍历循环。 二、ForEach控制器相关…...

Julia 数据类型

在编程语言中,都有基本的数学运算和科学计算,它们常用的数据类型为整数和浮点数。 另外还有一个"字面量"的术语,字面量(literal)用于表达源代码中一个固定值的表示法(notation)&…...

01-基于SOA架构someip 开发-Linux开发环境搭建

前言:SOME/IP 是一个汽车的中间件解决方案,可用于控制消息。从一开始,它的设计就是为了完美地适应不同尺寸和不同操作系统的设备。这包括小型设备,如相机、AUTOSAR设备,以及头部单元或远程信息处理设备。同时还确保了S…...

历时半年!从外包到现在阿里网易25K,分享一下自己的涨薪经验

前言 首先自我介绍一下,本人普通一本毕业,年初被老东家裁员干掉了,之后一直住在朋友那混吃等死,转折是今年年后,二月初的时候和大佬吃了个饭,觉得自己不能这样下去了,拿着某大佬给我的面试资料…...

支付系统中的设计模式04:改进的策略与外观模式

随着业务越做越大,交易量大了,老板觉得可以用一些变相的方法增加一些收入了,同时也有利于用户,做到双赢。这很好理解,“往地上戳一棍子都能冒出油来”,谁能扛得住这种诱惑呢? 于是,老板就提了这样的需求: 支付系统需要根据不同的结算模式,返利给账户: 1、选择T+1结算…...

关于数据分析和数据指标,企业还需要做什么?

数据虽然已经成为了各行各业对未来的共识,也切实成为了各领域企业的重要资产。但真正谈到发挥数据的价值,就必须从规模庞大的数据中找出需求的数据,然后进行利用。这个过程光是想想就知道很麻烦,更别提很多数据都是经常会用到的&a…...

jvm之垃圾回收器

分类 按线程 串行并行工作模式 并发式独占式碎片处理方式 压缩式非压缩式工作内存空间 年轻代老年代 评估GC的性能指标 吞吐量:运行用户代码的时间占总运行时间的比例暂停时间:执行垃圾收集时,程序的工作线程被暂停的时间内存占用: java堆区…...

【c++】类和对象7—继承

文章目录关于继承继承与非继承的对比继承方式继承中的对象模型继承中的构造和析构顺序继承同名成员处理方式继承同名静态成员处理方式多继承语法菱形继承关于继承 我们发现,定义一些类时,下级别的成员处理拥有上一级的共性,还有自己的特性。 …...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘&#xf…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...