Grid を使うべき時
Selenium Grid はどのような場合に使用しますか?
- 異なるブラウザの種類、ブラウザのバージョン、オペレーティングシステムに対して、テストを並行して実行するため
- テストスイートの実行に必要な時間を短縮するため
Selenium Grid は、複数のマシン (ノードと呼ばれる) に対してテストスイートを並行して実行します。大規模で長時間実行されるテストスイートの場合、これにより数分、数時間、または場合によっては数日を節約できます。これにより、テスト対象アプリケーション (AUT) の変更に対するテスト結果のターンアラウンド時間が短縮されます。
Grid は、複数の異なるブラウザに対して (並行して) テストを実行でき、同じブラウザの複数のインスタンスに対して実行できます。例として、6 つのノードを持つ Grid を想像してみましょう。最初のマシンには Firefox の最新バージョン、2 番目のマシンには Firefox の「最新バージョン - 1」、3 番目のマシンには最新の Chrome、残りの 3 台のマシンは Mac Mini であり、これにより Safari の最新バージョンで 3 つのテストを並行して実行できます。
実行時間は簡単な式で表すことができます
テスト数 * 平均テスト時間 / ノード数 = 合計実行時間
15 * 45s / 1 = 11m 15s // Without Grid
15 * 45s / 5 = 2m 15s // Grid with 5 Nodes
15 * 45s / 15 = 45s // Grid with 15 Nodes
100 * 120s / 15 = 13m 20s // Would take over 3 hours without Grid
テストスイートが実行されると、Grid はテストで構成されたこれらのブラウザに対して実行するテストを割り当てます。
このような構成により、最大規模の Selenium テストスイートであっても、実行時間を大幅に短縮できます。
Selenium Grid は Selenium プロジェクトの完全にネイティブな部分であり、コア Selenium 開発に従事するコミッターの同じチームによって並行して保守されています。テスト実行速度の重要性を認識し、Grid は初期の頃から Selenium プロジェクトの重要な一部でした。