TestNG 8同時テスト


一、Concurrenttesting:
次の例は、出力プロセスIDです.threadPoolSizeは、スレッドプールのサイズ、すなわち同時スレッド数を示すために使用されます.
5回の呼び出しで、3つのスレッドが呼び出されます.
@Test(invocationCount = 5, threadPoolSize = 3,groups = { "t9"})
public void smallThreadPool() {
	System.out.println("Thread#: " +Thread.currentThread().getId());
}

ページ出力
[TestNG]Running:
 E:\android\selenium\test_wdng_java\src\testing.xml
Thread#:13
Thread#:15
Thread#: 14         
Thread#:15
Thread#:15
===============================================
Suite
Totaltests run: 5, Failures: 0, Skips: 0
===============================================
5回の呼び出しに変更すると、5つのスレッドが呼び出されます.
Thread#:10
Thread#:14
Thread#:12
Thread#:11
Thread#:13
二、Concurrentrunning of tests
TestNGはマルチスレッドモードですべてのtestを実行することができ、これにより最大の実行速度を得ることができ、実行時間を最大限に節約することができる.もちろん、同時実行にも代価があります.私たちのコードがスレッドの安全であることが必要です.
テストを同時に実行するには、次の例で実行するプロファイルを指定する必要があります.
<suite name="Concurrent Suite" parallel="methods" thread-count="2" verbose="1" >
<>……<>
</suite>

1.Parallel="methods"とは、TestNGがmethodを同時のメタサブユニットとして実行することを意味し、すなわち各methodが独自のthreadで実行される.parallel="tests"の場合、testは同時のメタサブユニットとして使用されます.
2.Thread-count="2"とは、実行時に同時度が2で、同時に2つのスレッドが実行されることを意味します.
例:
@Test(groups = { "t8"})
public void aThreadPool() {
	System.out.println("#ThreadA: " +Thread.currentThread().getId());
}
@Test(groups = { "t8"})
public void bThreadPool() {
	System.out.println("#ThreadB: " +Thread.currentThread().getId());
}
@Test(groups = { "t8"})
public void cThreadPool() {
	System.out.println("#ThreadC: " +Thread.currentThread().getId());
}


--------------------------------------------------------------------

 
出力結果:
#ThreadB:11
#ThreadC:11
#ThreadA:10
===============================================
Suite
Totaltests run: 3, Failures: 0, Skips: 0
===============================================
 
に変更
ページ出力(aThreadPool()、bThreadPool()、cThreadPool()はいずれもtestの下にあるため)
#ThreadA:1
#ThreadB:1
#ThreadC:1
===============================================
Suite
Totaltests run: 3, Failures: 0, Skips: 0
============================================http://blog.sina.com.cn/bestfeiyong