非常に多数のセレンテストを実行することは非常に可能です。私の組織では、複数の Web サイトで 1 日あたり約 200,000 から 300,000 のテストを実行しています。はい、可能です。
注:- 私は Java でコーディングしています。以下のすべての情報は Java の観点からのものです。
セレンを使用した大規模なテストを成功させるには、3 つの基本コンポーネントが必要だと思います。
- インフラストラクチャ
- 優れたフレームワークと保守しやすいコード
- 簡単で明確なレポート
インフラストラクチャー
インフラストラクチャは、膨大な負荷をサポートできる必要があります。これを実現するために、Selenium グリッド (Selenium 2 を使用している場合は Grid 2.0 と呼ばれます) を使用します。Selenium Grid を使用すると、複数のテストを並行して複数のブラウザーで実行できます。このテストをサポートするために、仮想マシンが展開されている独自のサーバーを使用します。インフラストラクチャのメンテナンスを外部委託できる Saucelabs.com のようなベンダーがあります。
フレームワークとテストコード
フレームワークはマルチスレッドをサポートする必要があり、セレン グリッド機能を利用するにはスレッドセーフである必要があります。これを実現するためにJAVAを使用しています。テストを並行して実行するには、testNGを使用します。testNG は複数のメソッドを並行して実行でき、これらすべてのテストは 1 つのハブを指します。次に、ハブは、接続されている複数のリモート コントロール (RC) に対してこれらすべてのテストを配布します。
テストのセットが大きい場合、メンテナンスは避けられません。アプリケーションの変更によるやり直し作業を減らすには、常にページ オブジェクト モデルに従うことをお勧めします。ページ オブジェクトは基本的に、アプリケーション内の各ページには、コード内に対応するクラスが必要であることを意味します。このクラスのそのページで発生する可能性のあるすべての要素と機能を定義します。これは非常にモジュール化された再利用可能な構造です。pageobject モデルをグーグルで検索すると、多くの記事が見つかります。
報告
1 日あたり 200,000 件のテストを実行するのは素晴らしいことですが、簡単にアクセスできる方法で何が失敗し、何が成功したかを示すことができなければ、自動化テストはあまり役に立ちません。これには複数の方法があります。HTML レポートから、結果を表示するためのカスタム ダッシュボードの構築まで。
これらがすべて揃ったら、必要なのは、これらのテストを継続的に実行し続けるためのツールだけです。これを実現するために、任意の CI (継続的インテグレーション) ツールを使用できます。Jenkins、Hudson、cruisecontrol は、主に使用される CI ツールの一部です。