テストの並列実行

複数の JUnit プロセスを使用して、複数のブラウザーやモバイル デバイスに対してテストを並列に実行することができます。たとえば、CI サーバーや Silk Central からテストを実行するときに、この機能を使用できます。

デフォルトでは、Silk Test は、次のブラウザーやプラットフォームでの並列テストをサポートします。
  • Google Chrome
  • Mozilla Firefox
  • 以下のプラットフォーム上での Web、ネイティブ、ハイブリッド アプリ
    • 物理 Android デバイス
    • Android エミュレータ
    • 物理 デバイス
既存の Silk4J スクリプトに WebDriver 機能を追加して混合スクリプトにする場合は、getWebDriver メソッドを使って新しいドライバーを取得します。詳細については、「既存の Silk4J スクリプトと Selenium スクリプトの使用」を参照してください。
注: 新しい WebDriver オブジェクトの取得に new RemoteWebDriver を使っても、混合スクリプトの並列テストは動作しません。

テストの並列再生を無効にするには、環境変数 SILKTEST_ENABLE_PARALLEL_TESTING を false に設定します。

注: 並列テストを有効にすると、Open Agent はテストの実行プロセスのそれぞれを別々に処理しようとします。ある Silk Test クライアントでテストされたアプリケーションは、最初のクライアントが実行している間、他のクライアントでテストすることはできません。たとえば、Silk4JSilk4NET で交互に同じアプリケーションをテストすることはできません。
注: 同じモバイル デバイス上で同時に複数のテストを実行することはできません。テストを並列実行する前に、十分なデバイスとエミュレータが利用できることを確認してください。モバイル デバイスやエミュレータが割り当てられないと、テストの実行は失敗します。

並列テストの実行それぞれが、1 個のブラウザーまたはモバイル デバイスに対して個々の java.exe を開始します。ブラウザーやモバイル デバイスを特定の java.exe と関連付けたい場合には、接続文字列を使用できます。詳細については、「モバイル デバイスの接続文字列」または「リモート デスクトップ ブラウザーの接続文字列」を参照してください。

次の図は、複数のブラウザーの並列テストのイメージを表します。

次の図は、複数のデバイスの並列テストのイメージを表します。

複数のプロセスが同時に開始されると、Silk4J を実行しているマシン上で Open Agent を何度も開始しようとする可能性があります。同じマシンで複数回 Open Agent を実行することはできないため、Silk4J は例外をスローすることになります。これを避けるため、テストを並列実行する前に、Open Agent が実行されていることを確認してください。

テスト結果は、複数の TrueLog ファイル(各テスト実行毎に 1 つ)に保存されます。TrueLog ファイルが上書きされないようにするため、TrueLog ファイル名にプレースホルダーを使用することができます。詳細については、「TrueLog オプションの設定」を参照してください。
注: テスト中のメモリ消費量が激しいと感じた場合は、テスト結果が XLG 形式ではなく、圧縮ファイルである TLZ 形式で保存されていることを確認してください。並列テストでは、Silk4J は TrueLog API をサポートしません。