いつGridを使用すべきか
Grid をいつ使うべきでしょうか?
- 複数のブラウザー、異なるタイプまたは異なるバージョンのブラウザー、あるいは異なる OS 上でで実行されているブラウザーに対して並列でテストを実行したい場合
- テストスイートの実行時間を減らしたい場合
Selenium Grid はノードと呼ばれる複数のマシンを使用して並列でテストスイートを実行します。 大規模な長時間実行されるテストでは数分から数時間、あるいは数日単位での短縮が可能です。 つまり、あなたのテスト対象のアプリケーションのテスト結果を得るまでの時間を短縮します。
Grid は複数の異なるブラウザーに対してテストを実行でき、また同じブラウザーインスタンスに対して複数のテストを実行することも可能です。 たとえば 6 つのノードで構成された Grid があるとします。 最初のマシンは FireFox の最新バージョン、2 つめは FireFox の最新から一つ前のバージョン、 3 つめは 最新の Chrome、そして残りは Mac Mini で最新の Safari を使って 3 つのテストを並行して実行することができます。
実行時間は簡単な式で表すことができます:
テストの数 * 平均テスト時間 / ノード数 = 合計実行時間
15 * 45s / 1 = 11m 15s // Grid なし
15 * 45s / 5 = 2m 15s // 5 ノードの Grid
15 * 45s / 15 = 45s // 15 ノードの Grid
100 * 120s / 15 = 13m 20s // Grid なしの場合3時間以上かかります
テストスイートが実行されると Grid はテストで設定されたブラウザに対して実行するテストを割り当てます。
このような設定により、大規模な Selenium テストスイートであっても実行時間を大幅に短縮することができます。
Selenium Grid は Selenium プロジェクトの一部であり、 Selenium コアの開発コミッターと同じチームによってメンテナンスされています。 テストの実行速度の重要性を認識し、Grid は Selenium プロジェクトの初期段階から重要な役割を担っています。