1

スレッドの再利用はおそらく適切な用語ではありませんが<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;
        }
    };
}
4

0 に答える 0