使用注解的方式对TestNg线程池配置、执行次数配置、超时配置

注:使用注解来控制测试方法运行的次数和超时时间,timeOut在单线程或者多线程模式下都可用,threadPoolSize设置了线程池的个数 * ,在观察结果时,发现很多值是重复的,但是可能不等于我们配置的线程池个数,因为线程的个数还取决于硬件CPU的支持,

invocationCount----表示执行的次数

threadPoolSize-----表示线程池的内线程的个数

timeOut-------超时时间-毫秒

Javacode:

  1. /**
  2. *
  3. * <p>
  4. * Title: TestngInvocationCount
  5. * </p>
  6. *
  7. * <p>
  8. * Description:
  9. * 使用注解来控制测试方法运行的次数和超时时间,timeOut在单线程或者多线程模式下都可用,threadPoolSize设置了线程池的个数
  10. * ,在观察结果时,发现很多值是重复的,但是可能不等于我们配置的线程池内线程个数,因为线程的个数还取决于硬件CPU的支持,
  11. * </p>
  12. *
  13. * <p>
  14. * Company:
  15. * </p>
  16. *
  17. * @author : Dragon
  18. *
  19. * @date : 2014年10月22日
  20. */
  21. public class TestngInvocationCount {
  22. private static int sum = 0;
  23. @Test(threadPoolSize = 2, invocationCount = 10, timeOut = 1000)
  24. public void testServer() throws InterruptedException {
  25. // 检测启动的线程数,当启动的个数超过CPU核数时,其实是重新在调度
  26. // Thread.sleep(2000);
  27. sum++;
  28. System.out.println("........." + sum);
  29. }
  30. }

测试结果:

  1. [ThreadUtil] Starting executor timeOut:1000ms workers:10 threadPoolSize:3
  2. .........2
  3. .........2
  4. .........2
  5. .........3
  6. .........4
  7. .........5
  8. .........6
  9. .........7
  10. .........8
  11. .........9
  12. PASSED: testServer
  13. PASSED: testServer
  14. PASSED: testServer
  15. PASSED: testServer
  16. PASSED: testServer
  17. PASSED: testServer
  18. PASSED: testServer
  19. PASSED: testServer
  20. PASSED: testServer
  21. PASSED: testServer
  22. ===============================================
  23. Default test
  24. Tests run: 10, Failures: 0, Skips: 0
  25. ===============================================

TestNg线程池配置、执行次数配置、超时配置的更多相关文章

  1. 重新想象 Windows 8 Store Apps (42) - 多线程之线程池: 延迟执行, 周期执行, 在线程池中找一个线程去执行指定的方法

    [源码下载] 重新想象 Windows 8 Store Apps (42) - 多线程之线程池: 延迟执行, 周期执行, 在线程池中找一个线程去执行指定的方法 作者:webabcd 介绍重新想象 Wi ...

  2. java并发编程(四) 线程池 & 任务执行、终止源码分析

    参考文档 线程池任务执行全过程:https://blog.csdn.net/wojiaolinaaa/article/details/51345789 线程池中断:https://www.cnblog ...

  3. Hystrix配置实战及feign超时配置失效

    一.feign超时配置失效 最近项目上遇见feign超时配置总是失效.导致feign调用超过2s之后就会超时,会进行自动重试,重复调用两次服务,并且还是指定接口.这就更加奇怪.最后通过观察以及源码调试 ...

  4. C# -- 使用线程池 ThreadPool 执行多线程任务

    C# -- 使用线程池 ThreadPool 执行多线程任务 1. 使用线程池 class Program { static void Main(string[] args) { WaitCallba ...

  5. ForkJoinPool线程池--分支执行

    import java.util.ArrayList; import java.util.concurrent.ExecutionException; import java.util.concurr ...

  6. Hystrix多个线程池切换执行超时带来的问题(图解)

      线程池切换带来的超时问题 ​ 上图有什么问题: Controller的Hystrx线程池已经到了超时时间,而FeignClient的Hystrx线程池还没到超时时间. 场景: Controller ...

  7. 戏(细)说Executor框架线程池任务执行全过程(下)

    上一篇文章中通过引入的一个例子介绍了在Executor框架下,提交一个任务的过程,这个过程就像我们老大的老大要找个老大来执行一个任务那样简单.并通过剖析ExecutorService的一种经典实现Th ...

  8. Android AsyncTask内部线程池异步执行任务机制简要分析

    如下分析针对的API 25的AsyncTask的源码: 使用AsyncTask如果是调用execute方法则是同步执行任务,想要异步执行任务可以直接调用executeOnExecutor方法,多数情况 ...

  9. 戏(细)说Executor框架线程池任务执行全过程(上)

    一.前言 1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦.要执行任务的人只需把Task描述清楚,然后提交即可.这个Task是怎么被执行的,被谁执行的,什么时候执行的,提交的人就不 ...

随机推荐

  1. 【leetcode】Anagrams (middle)

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  2. Quatre 2D的绘图功能的三个步骤(上下文,绘图,渲染)

    一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法. 画线的三个步骤: ( ...

  3. iOS开发MAC下配置svn

    版本控制对于团队合作显得尤为重要,那么如何在iOS开发中进行版本控制呢?在今天的博客中将会介绍如何在MAC下配置SVN服务器,如何导入我们的工程,如何在Xcode中进行工程的checkOut和Comm ...

  4. iOS多线程编程之NSThread的使用

      目录(?)[-] 简介 iOS有三种多线程编程的技术分别是 三种方式的有缺点介绍 NSThread的使用 NSThread 有两种直接创建方式 参数的意义 PS不显式创建线程的方法 下载图片的例子 ...

  5. oracle默认配置ora文件位置

    unix:$ORACLE_HOME/dbsnt:c:\Oracle\ora81\database create spfile from pfile = '/home/oracle/initora11g ...

  6. *** Assertion failure in -[UIApplication _runWithMainScene:transitionContext iOS9.1闪退问题解决

    错误原因在于 AppDelegate 中 didFinishLaunchingWithOptions 结束前 未定义 rootViewController,Xcode7规定必须要有rootViewCo ...

  7. 【转】Java高手真经全套书籍分享

    (转自:http://blog.sina.com.cn/s/blog_4ec2a8390101cd1n.html) 中文名: Java高手真经 原名: JAVA开发专家 作者: 刘中兵Java研究室 ...

  8. 困难的串(dfs)

    困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如,                 BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...

  9. Redis笔记(六)Redis的消息通知

    Redis的消息通知可以使用List类型的LPUSH和RPOP(左进右出),当然更方便的是直接使用Redis的Pub/Sub(发布/订阅)模式. >>使用List实现队列 使用列表类型的L ...

  10. java 泛型 -- 泛型类,泛型接口,泛型方法

    泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...