複数の
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 クライアントでテストされたアプリケーションは、最初のクライアントが実行している間、他のクライアントでテストすることはできません。たとえば、Silk4J と
Silk4NET で交互に同じアプリケーションをテストすることはできません。
注: 同じモバイル デバイス上で同時に複数のテストを実行することはできません。テストを並列実行する前に、十分なデバイスとエミュレータが利用できることを確認してください。モバイル デバイスやエミュレータが割り当てられないと、テストの実行は失敗します。
並列テストの実行それぞれが、1 個のブラウザーまたはモバイル デバイスに対して個々の
java.exe を開始します。ブラウザーやモバイル デバイスを特定の
java.exe と関連付けたい場合には、接続文字列を使用できます。詳細については、「モバイル デバイスの接続文字列」または「リモート デスクトップ ブラウザーの接続文字列」を参照してください。
次の図は、複数のブラウザーの並列テストのイメージを表します。
次の図は、複数のデバイスの並列テストのイメージを表します。
複数のプロセスが同時に開始されると、Silk4J を実行しているマシン上で Open Agent を何度も開始しようとする可能性があります。同じマシンで複数回 Open Agent を実行することはできないため、Silk4J は例外をスローすることになります。これを避けるため、テストを並列実行する前に、Open Agent が実行されていることを確認してください。
テスト結果は、複数の
TrueLog
ファイル(各テスト実行毎に 1 つ)に保存されます。
TrueLog ファイルが上書きされないようにするため、TrueLog ファイル名にプレースホルダーを使用することができます。詳細については、「TrueLog オプションの設定」を参照してください。
注: テスト中のメモリ消費量が激しいと感じた場合は、テスト結果が XLG 形式ではなく、圧縮ファイルである TLZ 形式で保存されていることを確認してください。並列テストでは、Silk4J は TrueLog API をサポートしません。