TestNg线程池配置、执行次数配置、超时配置

时间:2023-12-24 13:52:31

使用注解的方式对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线程池配置、执行次数配置、超时配置