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

TestNG @Test注释属性- threadPoolSize属性

本文将讨论TestNG中@Test annotation的threadPoolSize属性。那么,我们开始吧。

那么,threadPoolSize属性有什么用处呢?答案是,无论何时您想要多次并行地运行一个测试方法,您都需要这个属性。该方法将从invocationCount属性指定的多个线程中调用。

import org.testng.Assert;
import org.testng.annotations.Test;public class CodekruTest {@Test(invocationCount = 5, threadPoolSize = 5)public void testMethod() {int expected = 5;int actual = 5;Assert.assertEquals(actual, expected);}}

产出-

Executing the test
Executing the test
Executing the test
Executing the test
Executing the test
PASSED: testMethod
PASSED: testMethod
PASSED: testMethod
PASSED: testMethod
PASSED: testMethod===============================================Default testTests run: 5, Failures: 0, Skips: 0

你可能想问invocationCount在那里做什么。如果不使用invocationCount属性,我们将无法使用threadPoolSize。

注意:如果没有定义invocationCount,threadPoolSize属性将被忽略。

让我们看一个例子。

import org.testng.Assert;
import org.testng.annotations.Test;public class CodekruTest {@Test(threadPoolSize = 5)public void testMethod() {int expected = 5;int actual = 5;System.out.println("Executing testMethod");Assert.assertEquals(actual, expected);}}

产出-

Executing testMethod
PASSED: testMethod===============================================Default testTests run: 1, Failures: 0, Skips: 0
===============================================

我们可以看到测试用例只执行了一次。

什么时候可以使用threadPoolSize属性?可能有一种情况,我们想运行一个测试方法多次(比如100次)。然后,一个接一个地运行100个测试用例可能会花费大量的时间。因此,为了减少执行时间,我们可以在那里使用一个值(比如5)的threadPoolSize,现在测试用例将在并行实例中运行,并且用例将在更短的时间内执行。

相关文章:

  • 自适应哈希索引
  • python网络爬虫教程笔记(1)
  • 【组合递归】【StringBuilder】Leetcode 17. 电话号码的字母组合
  • Android开发技术总结,附项目源码
  • 【Golang】介绍
  • 微服务中的Feign:优雅实现远程调用的秘密武器(一)
  • 麒麟KYLINSOS服务器操作系统SP3安装
  • Java8的Stream执行机制
  • 前端面试练习24.3.5
  • FPGA-VGA成像原理与时序
  • Redis缓存【重点】
  • Kubernetes/k8s的核心概念
  • 蓝桥杯刷题--python-16
  • el-select 选中之后所有颜色变蓝了
  • STM32CubeIDE基础学习-新建STM32CubeIDE基础工程
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Apache的80端口被占用以及访问时报错403
  • Hibernate【inverse和cascade属性】知识要点
  • Java比较器对数组,集合排序
  • java正则表式的使用
  • PAT A1017 优先队列
  • React中的“虫洞”——Context
  • TypeScript实现数据结构(一)栈,队列,链表
  • Vue.js 移动端适配之 vw 解决方案
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于遗传算法的优化问题求解
  • 那些被忽略的 JavaScript 数组方法细节
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 正则学习笔记
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ![CDATA[ ]] 是什么东东
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #大学#套接字
  • #每天一道面试题# 什么是MySQL的回表查询
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (力扣)1314.矩阵区域和
  • (六)c52学习之旅-独立按键
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Sql Server 保留几位小数的两种做法
  • (转载)(官方)UE4--图像编程----着色器开发
  • .Net Core 中间件验签
  • .NET Core跨平台微服务学习资源
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net6使用Sejil可视化日志
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET开源快速、强大、免费的电子表格组件
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)