Testng认识与配置-全网最简单

总结:testng支持注解,线程池,数据驱动,参数化,强大执行模式,也支持单元测试,功能测试,接口测试

TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as:

  • Annotations.

  • Run your tests in arbitrarily big thread pools with various policies available (all methods in their own thread, one thread per test class, etc…​).

  • Test that your code is multithread safe.

  • Flexible test configuration.

  • Support for data-driven testing (with @DataProvider).

  • Support for parameters.

  • Powerful execution model (no more TestSuite).

  • Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc…​).

  • Embeds BeanShell for further flexibility.

  • Default JDK functions for runtime and logging (no dependencies).

  • Dependent methods for application server testing.

TestNG 是一个测试框架,它受到了 JUnit 和 NUnit 的启发,但引入了一些新功能,使其更加强大和易于使用。以下是 TestNG 的一些主要特点和优势:

注解(Annotations)
TestNG 使用注解来标记测试方法、测试套件、测试组等,使得测试代码更加清晰和易于管理。

多线程测试执行
TestNG 允许你在任意大小的线程池中运行测试,提供了多种线程策略,比如每个方法都在自己的线程中运行,每个测试类使用一个线程等。

多线程安全测试
TestNG 可以测试你的代码是否在多线程环境下安全,这对于并发编程的测试至关重要。

灵活的测试配置
TestNG 提供了灵活的测试配置选项,可以根据需要调整测试的执行顺序、优先级等。

数据驱动测试支持
通过使用 @DataProvider 注解,TestNG 支持数据驱动测试,你可以为测试方法提供多组不同的输入数据。

参数化测试
TestNG 允许你为测试方法提供参数,这使得你可以为同一个测试逻辑准备不同的测试场景。

强大的执行模型
TestNG 采用了强大的执行模型,不再依赖于传统的 TestSuite,而是使用注解和配置文件来组织和管理测试。

丰富的工具和插件支持
TestNG 被多种工具和插件支持,包括 Eclipse、IDEA、Maven 等,这使得它可以在各种开发环境中轻松集成和使用。

嵌入 BeanShell
BeanShell 是一个轻量级的 Java 脚本引擎,TestNG 嵌入 BeanShell 提供了额外的灵活性,允许在测试执行过程中执行动态脚本。

默认 JDK 函数
TestNG 使用 JDK 的默认函数进行运行时和日志记录,这意味着它不依赖于任何额外的库或框架。

依赖方法
TestNG 支持定义依赖方法,这对于应用服务器测试等复杂场景非常有用,可以确保测试按照特定的顺序执行,并且某些测试方法依赖于其他方法的执行结果。

总的来说,TestNG 是一个功能强大且易于使用的测试框架,适用于各种 Java 应用程序的测试需求。

 

简单来说,

testng有注解 ;

testng可用线程池运行test测试用例

testng用多线程池运行代码是安全的

testng有灵活的测试配置

testng支持数据驱动,主要用@DataProvider

testng支持参数化

testng有强大的执行模式,不需太多TestSuite(测试套件)

Eclipse,IDEA,Maven都兼容testng

testng可灵活嵌入BeanShell

testng运行时可用JDK相关方法

testng涵盖所有类别的测试:单元测试,功能测试,端到端测试,集成测试


编写一个用例

Writing a test is typically a three-step process:

  • Write the business logic of your test and insert TestNG annotations in your code.

  • Add the information about your test (e.g. the class name, the groups you wish to run, etc…​) in a testng.xml file or in build.xml.

  • Run TestNG.

 

编写一个测试通常是一个三步走的过程:

  1. 编写测试的业务逻辑并插入TestNG注解
    首先,你需要编写测试代码,这通常包括设置测试环境、调用被测试的方法或函数,以及验证结果是否符合预期。在这个过程中,你会使用TestNG提供的注解来标记测试方法、测试套件、测试组等。例如,你可以使用@Test注解来标记一个测试方法,使用@BeforeMethod@AfterMethod来标记在每个测试方法执行前后需要运行的代码。

  2. 在testng.xml文件或build.xml文件中添加测试信息
    接下来,你需要提供一个配置文件来告诉TestNG如何运行你的测试。这个文件通常是testng.xml,它包含了测试运行所需的各种信息,比如要运行的测试类、测试组、测试方法的顺序、是否并行执行等。如果你使用的是像Maven或Ant这样的构建工具,你也可以在它们的构建脚本(如build.xml或pom.xml)中配置TestNG的运行参数。

  3. 运行TestNG
    最后,你可以通过命令行、IDE插件或构建工具来运行TestNG。当TestNG运行时,它会读取你的testng.xml配置文件或构建脚本中的设置,加载并执行你的测试代码。TestNG会收集测试结果,并在测试完成后生成报告,你可以根据报告来查看测试是否通过,以及每个测试的具体执行情况。

这三个步骤涵盖了编写、配置和运行TestNG测试的全过程。确保你的测试代码逻辑清晰、注解使用正确,配置文件设置合理,就可以有效地进行单元测试、集成测试或其他类型的测试。

步骤‘;

File-Settings-Plugins-输入插件名称,需要安装testng和xml

目的:是为了建testng测试类

 在pom文件配置testng添加这段配置

目的:是开发代码时需要用testng源码类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Samtec前沿 | 信号发生器 - 决定可靠性的重要因素之一

【摘要/前言】 作为消费者,我们已经开始期待我们的技术达到一个前所未有的可靠性水平。无论是智能手机还是家庭汽车,我们已经开始期待智能电子设备在每次使用时都能在第一时间发挥作用。 【信号和电源发生器至关重要】 现代设备能够提供如此出色的…

外包干了5天,技术明显退步。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

VXLAN学习笔记

声明:该博客内容大部分参考参考链接整理 什么是VXLAN? VXLAN(Virtual Extensible LAN)即虚拟扩展局域网,是大二层网络中广泛使用的网络虚拟化技术。在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道,采用MAC in UDP的封装方…

Vue+SpringBoot打造大学生相亲网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询会员4.2 查询相亲大会4.3 新增留言4.4 查询新闻4.5 新增新闻 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的大学生相亲网站,包含了会员管理模块、新闻管…

嵌入式系统中端口号的理解与分析

每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人. 在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议…

*地宫取宝c++

题目 输入样例1: 2 2 2 1 2 2 1输出样例1: 2输入样例2: 2 3 2 1 2 3 2 1 5输出样例2: 14 思路 题目说从入口开始,只能向右或向下行走到达右下角,类似“摘花生”这道题的模型。题目又说只有当格子里的宝…

数字化浪潮下的选择:ETU-LINK光模块写码板全新升级至400G

随着光模块市场的蓬勃发展,ETU研发团队致力于不断改进SFP编码工具,以满足日益增长的客户需求。经过不懈努力,我们成功推出了3.0版本的写码板,在硬件和软件方面都进行了全面升级,为用户带来了极大的便利。今天&#xff…

一文弄懂空间金字塔池化网络

目录 空间金字塔池化网络是什么? 组成部分和工作原理 具体步骤 ​编辑 主要优点 空间金字塔池化网络是什么? 空间金字塔池化网络(Spatial Pyramid Pooling Network,SPPNet)是一种用于处理具有不同尺寸和比例的输入…

前端网络相关面试题

1. GET和POST请求的区别 传递参数不同: POST传递的参数在request body中GET传递的参数在url后拼接 GET请求一般用于查询,POST一般用于提交某种信息进行某些修改操作 POST相对GET请求安全 GET请求会被浏览器主动缓存,POST不会,要…

蓝牙耳机哪个好?2024年蓝牙耳机推荐榜单,新手上路!

​面对市场上种类繁多的蓝牙耳机,许多用户感到困惑不解。作为一个耳机爱好者,我根据自己的使用经验,整理了一些我认为值得推荐的蓝牙耳机,希望能为大家在选购时提供一些参考。 一、蓝牙耳机选购指南 1. 佩戴舒适度排名——开放式…

单元测试,写起来到底有多痛?

到底什么是单元测试 这个问题看似非常简单,单元测试嘛,不就是咱们开发自己写些测试类,来测试自己写的代码逻辑对不对。 这句话没有问题,但是不够准确。 首先我们要明白,这个测试二字前面还有两个字: 单元 。…

Windows-WSL2-VSCode+Docker配置C++开发环境

Windows-WSL2-VSCodeDocker配置C开发环境 写在前面 因为在学习工作中,需要不同的编码环境,若将这些不同的开发环境都状态一台设备上,很容易出问题,而且迁移性差,于是计划把不同的开发环境用docker隔离开来&#xff0…

面向对象编程第一式:封装 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

PMP考试心得,与大家共勉

本人刚刚通过PMP考试,有一些自己的经历,写出来欢迎已经是PMP的兄弟们指正,希望能给正在PMP之路上奔跑的人们一些帮助。 其实很早就听说过PMP认证考试了,但是一直工作很忙没有时间来投入学习考试。因此一直拖到今年夏天才有时间参加…

耐腐蚀PFA气体洗涤瓶可多级串联透明特氟龙塑料氢气吸收装置

洗气瓶是一种常用于净化和干燥各种气体的实验室器皿,以去除其中的水分、油脂、颗粒物等杂质,从而使需要用到的气体满足实验要求。 PFA洗气瓶的工作原理: 主要是通过液体吸收、溶解或发生化学反应来去除气体中的杂质。在洗气过程中&#xff…

加速布局Wi-Fi及蓝牙市场!移远通信再推四款高性能模组新品

3月12日,全球领先的物联网整体解决方案供应商移远通信宣布,其已正式推出四款新型Wi-Fi和蓝牙模组新品,旨在继续致力于满足物联网行业不断升级的应用需求,为智慧家居、工业互联、储能、充电桩等各种场景提供一站式创新解决方案。 此…

Kotlin 空类型,区间,数组

目录 1. 空类型 2. 区间 3. 数组 1. 空类型 我们知道任何一种数据类型都有为空或不为空两种状态,在 Kotlin 中,若允许一个数据为空,则需要使用 "?",默认都不能为空。 代码举例说明 // 给 notNull赋值为空&#x…

2023.5.9工作问题记录————安卓GKI检测abi-check

GKI ABI-check SOP ABI check是用于校验生成的kernel中ko与google释放的ko所计算出来的CRC是否相等。 在GKI版本中,很多kernel中的配置有y变成了m,编译成了ko,XTS测试时,会替换boot镜像, 替换成google释放的boot.img&…

Vue3组件详情

Vue3组件详情 一、父组件向子组件传值 ref、props二、子组件向父组件传值 emit三、子组件向父组件传值 v-model四、setup语法糖1、基本用法2、data和methods3、计算属性 computed4、监听器 watch、watchEffect5、自定义指令 directive6、import导入的内容可以直接使用7、声明pr…

Flume集成Kafka

之前提到Flume可以直接采集数据存储到HDFS中,那为什么还要引入Kafka这个中间件呢,这个是因为在实际应用场景中,我们既需要实时计算也需要离线计算。 Kfka to HDFS配置 # Name the components on this agent a1.sources r1 a1.sinks k1 a1.…