原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40394625
我们在开发过程中经常会遇到多线程的编程,比如最常见的几种情况:
1.互不通信的多线程模式
2.基于共享容器协同的多线程模式
3.通过事件协同的多线程模式
4.多进程的模式
这里我们不去详细讨论每种方式的开发方法,但是我们会首先想到一个问题,如何进行多线程代码的测试?
TestNg给出了关于多线程平行化的测试解决方案:
通过在配置文件配置的方式,进行不同级别的多线程配置测试:
<suite name="My suite" parallel="methods" thread-count="5">
方法级别的多线程测试,每个方法都将采用独立的线程进行测试,thread-count参数配置启动的线程数,parallel参数来定义平行化的级别
<suite name="My suite" parallel="tests" thread-count="5">
这个tests表示的是我们在配置文件中的<test>标签内的所有方法将在同一个线程中执行,但是<tests>标签内的每个<test>是以不同的线程来执行
我们也可以先将测试进行分组,然后再采取这种方式进行测试,这对一些线程不安全的代码测试时是很有效的
<suite name="My suite" parallel="classes" thread-count="5">
将把每个<class>标签内的所有方法在同一个线程中执行,但是<classes>中的不同<class>将会以不同的线程执行
<suite name="My suite" parallel="instances" thread-count="5">
TestNg将把同一个实例内的所有方法运行在同一个线程中,但是如果两个方法是在不同的实例中,那么他们将会在不同的线程中执行
原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40394625