単一マシンでの複数 UI セッションのアプリケーションのテスト

単一マシンで複数の UI セッションを持つアプリケーションや、単一マシンで複数のエージェントをテストするには、そのマシンで複数の Open Agent インスタンスに接続します。すべてのエージェントがそれ自身の UI セッションで実行します。UI セッションは、リモート デスクトップ プロトコル (RDP) や Citrix ベースの接続です。

  1. UI セッションを作成します。
  2. コマンドライン ウィンドウを開きます。
  3. Silk Test インストール ディレクトリの /ng/agent フォルダに移動します。 たとえば、デフォルトでは、フォルダのパスは次のようになります:C:\Program Files (x86)\Silk\SilkTest\ng\agent
  4. 各 UI セッションで、次のコマンドを実行します。openAgent.exe -infoServicePort=<port>
    注: このポート番号は、Silk4J スクリプトで Open Agent とエージェントが実行している UI セッションを識別するために使用されるため、一意のポート番号を使用してください。
  5. Silk4J スクリプトを変更して、Open Agent インスタンスに接続します。 Open Agent インスタンスに接続するために、スクリプトに次の行を追加します。
    Desktop desktopSession = new Desktop("hostname:port");
    ここで、hostname はエージェントが実行しているマシンの名前で、port は指定した一意のポート番号です。
結果のオブジェクトは互いに独立しており、単一スレッド、複数スレッドのどちらででも使用することができます。
注: 複数の UI セッションでアプリケーションを起動する場合には、それぞれの UI セッションに対して基本状態を実行する必要があります。
注: リモート マシン上の複数の UI セッションでアプリケーションをテストするときに TrueLog を使用するには、生成された TrueLog ファイルをリモート マシンからローカル マシンに手動でコピーする必要があります。

複数の UI セッションをホストしているサーバー マシンの名前を ui-srv とします。ポート番号 22903、22904、22905 を使用して 3 つの UI セッションを作成します。

最初のセッションのために、コマンドライン ウィンドウを開き、agent ディレクトリに移動して、次を入力します。
openAgent.exe -infoServicePort=22903

他の 2 つのセッション対して、ポート番号 22904 と 22905 をそれぞれ使用して同じことを行います。

Open Agent インスタンスに接続するために、スクリプトに次の行を追加します。
Desktop desktopSession1 = new Desktop("ui-srv:22903");
Desktop desktopSession2 = new Desktop("ui-srv:22904");
Desktop desktopSession3 = new Desktop("ui-srv:22905");
次のサンプル スクリプトでは、3 つの UI セッションそれぞれに対して単純なテキストを出力します。
public class TestMultiSession {
  Desktop d1 = new Desktop("ui-srv:22903");
  Desktop d2 = new Desktop("ui-srv:22904");
  Desktop d3 = new Desktop("ui-srv:22905");
		   
  @Test
  public void test() {
    BaseState basestate = new BaseState();
    basestate.execute(d1);
    basestate.execute(d2);
    basestate.execute(d3);
          
    d1.<Window>find("//Window").typeKeys("Hello to session 1!");
    d2.<Window>find("//Window").typeKeys("Hello to session 2!");
    d3.<Window>find("//Window").typeKeys("Hello to session 3!");
  }
}