Docker アクティビティによるテスト
関連:API テスト
リモートの Docker コンテナに格納されているアプリケーションをテストするには UFT One のネイティブ API テスト機能を使用します。
Docker アクティビティを使用すると、UFT One で Docker を管理し、Docker レジストリからイメージをダウンロードして、これらのイメージに基づいてコンテナを実行できます。Docker アクティビティは、[ツールボックス]表示枠の[Docker]ノードで使用できます。
UFT One は、Docker でパッケージ化されたアプリケーションを次のように使用します。
-
UFT One は最初に、Docker レジストリからイメージをダウンロード(プル)する要求を Docker に送信します。
Docker コンテナの実行方法に関する特別な設定がある場合は、コンテナを作成して、その設定が含まれている JSON ファイルをロードします。
-
Docker は、ダウンロードしたイメージに基づいてコンテナを開始します。
-
アプリケーションが実行されている間に、 UFT One は、アプリケーションに対する追加のテスト・ステップを実行します。
-
テスト実行が完了すると、UFT One は、コンテナを停止する要求を Docker に送信します。
Docker の概要については、Docker のマニュアルを参照してください。
前提条件
UFT One で Docker アクティビティを実行する前に、Docker サーバをセットアップする必要があります。Docker サーバは、Docker をインストールしてセットアップするマシンです。マシンをセットアップすると、Docker レジストリから Docker イメージをプルできます。
Docker サーバのセットアップの詳細については、Docker のドキュメントを参照してください。
ポートの設定
テストする前に、[イメージの実行]または[コンテナの作成]アクティビティのポートを設定して、コンテナ・ポートを Docker ホスト・ポートにマップします。
これにより、アプリケーションが、コンテナ内のマップしたポートにアクセスできるようになります。
次のようにプロパティを更新します。
[イメージの実行]アクティビティ |
[プロパティ]表示枠の[ポート バインディング]プロパティでポートを設定します。 詳細については、「イメージの実行」を参照してください。 |
[コンテナの作成]アクティビティ |
要求の JSON 本文内でポート・バインディングを指定し、それをアクティビティにロードします。 詳細については、「コンテナの作成」を参照してください。 |
ヒント: ポートにコンテナの外部からアクセスできるようにするには、イメージの Docker ファイルの 'EXPOSE' パラメータを使用します。
Docker レジストリからのイメージのプル
-
[ツールボックス]表示枠で、[Docker]ノードから、[イメージのプル]アクティビティをキャンバスに追加します。
-
[プロパティ]表示枠の[入力/チェックポイント]タブ
で、次の Docker コンテナのアクセスに関する詳細を入力します。
-
Docker レジストリから Docker イメージをプルする Docker サーバの URL
-
Docker サーバ上の Docker レジストリからプルするイメージ
-
イメージを識別するために使用する tag - 任意
-
-
必要に応じて、アクティビティを検証する次のチェックポイントを追加します。
-
Digest:正しいイメージをインポートしたことを確認するために、イメージのダイジェスト識別子を指定します
-
Status:イメージのインポート操作のステータス
-
コンテナの作成
特別なカスタム・パラメータがある場合、またはコンテナに対する詳細設定が必要な場合は、独自のカスタム・コンテナを作成します。
これにより、Docker によって提供されるパラメータのうちのいくつかを使用して、コンテナの作成に設定することができます。
-
Docker イメージがすでに Docker サーバ上に存在していることを確認します。
-
[ツールボックス]表示枠で、[Docker]ノードから、キャンバスに[コンテナの作成]アクティビティを追加します。
-
[プロパティ]表示枠の[入力/チェックポイント]タブ
で、コンテナの詳細を入力します。
-
Docker サーバのサーバ URL
-
作成したコンテナのコンテナ名。標準設定では、Docker によって自動的に値が生成されるので、この引数は空のままにする必要があります。
-
-
[詳細プロパティ]タブ
で、[JSON のロード]ボタンをクリックします。
.json ファイル本体がパラメータを持つ REST 要求でロードされ、コンテナの作成時に使用できる状態になります。
コンテナの実行
-
[ツールボックス]表示枠で、[Docker]ノードから、[コンテナの開始]アクティビティをキャンバスに追加します。
-
[プロパティ]表示枠の[入力/チェックポイント]タブ
で、コンテナの詳細を入力します。
-
Docker サーバのサーバ URL
-
開始するコンテナのコンテナ ID
ヒント: このプロパティを[コンテナの作成]アクティビティの Container ID プロパティにリンクすることで、この値をパラメータ化します。
-
イメージの実行
Docker サーバにアプリケーションのイメージをダウンロードすると、コンテナ上でアプリケーションのイメージを実行できるようになります。
イメージを実行すると、その専用のコンテナ内でイメージが開始され、入力したコマンドを使用して、指定したアプリケーションが開始されます。
-
[ツールボックス]表示枠で、[Docker]ノードから、[イメージの実行]アクティビティをキャンバスに追加します。
-
[プロパティ]表示枠の[入力/チェックポイント]タブ
で、次の Docker コンテナのアクセスに関する詳細を入力します。
- Docker サーバの URL
-
Docker サーバ上の Docker レジストリから実行するイメージ
- Docker コンテナ内でアプリケーションを実行するために使用するコマンド
-
メイン入力プロパティの下にある[ポート バインディング]行で、[追加]ボタン
をクリックしてポート・バインディング・アレイをステップに追加します。
-
アレイでは、次のポートを入力します。
- コンテナ・ポート:アプリケーションからの出力を受け取るコンテナ内のポート
- ホスト・ポート:Docker ホスト・マシン上のポート
これらのポートを相互にマップすると、コンテナ・ポートに到達したすべてのデータはホスト・ポートに転送されます。
追加のテスト・ステップを追加する
コンテナが開始されると、アプリケーションをテストすることができるようになります。
[ツールボックス]表示枠で、必要なノードを展開し、アクティビティをキャンバスに追加します。
Docker コンテナ・イメージの停止
アプリケーションのテストの実行が完了したら、現在実行しているコンテナを停止します。
-
[ツールボックス]表示枠で、[Docker]ノードから、コンテナの停止ステップをキャンバスに追加します。
-
[プロパティ]表示枠の[入力/チェックポイント]タブ
で、停止するコンテナを識別するために使用する次のプロパティを設定します。
- Docker サーバの URL
- 停止するコンテナの ID
- コンテナを停止するまでの遅延時間(秒)