スレッドの再利用はおそらく適切な用語ではありませんが<threadCount>
、testNG テスト スイートを実行するために maven Surefire を使用するテスト自動化セットアップを実行しています。問題はそれです:
テストが実行され、実行するテストの数が指定された数を超えるまで、新しいブラウザが開かれますthreadCount
。たとえば、実行中に 10 個のテストがあり、7 つのスレッドを指定した場合、最初は 7 つのブラウザーが起動しますが、これらが閉じられるまで待機して別の 3 つを起動する代わりに、7 つのブラウザーのうち 3 つを再利用して実行します。次のテスト。
このインスタンスで 7 が終了するのを待ってから、同じブラウザー インスタンスを再利用せずに、まったく新しい 3 つのブラウザーを起動するにはどうすればよいでしょうか。
たとえば、実行するテストが 100 個あり、10 個のスレッドを使用する場合、元の 10 個のブラウザー インスタンスで 90 個のテストが再実行されます。
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
<parallel>methods</parallel>
<threadCount>${thread.count}</threadCount>
<suiteXmlFiles>
ドライバーを開始するために使用されるコードを次に示します。
@BeforeSuite(alwaysRun = true, description = "Driver Instantiation")
public static void instantiateDriverObject() {
driverFactory = new ThreadLocal<DriverFactory>() {
@Override
protected DriverFactory initialValue() {
DriverFactory driverFactory = new DriverFactory();
webDriverThreadPool.add(driverFactory);
return driverFactory;
}
};
}