Windows Docker コンテナでの UFT One テストの実行
UFT One Docker イメージを使用すると、UFT One のメンテナンスとテストの実行が高速になります。
- UFT One の Docker イメージにより、UFT Mobile および UFT One オートメーション・スクリプトを使用して、Windows Docker 環境でモバイル・テストを実行できます。
- UFT One 15.0.1 Docker イメージは、Windows Docker 環境での API テストの実行もサポートします。
- uft-lite イメージは、機能はフル・イメージと同じですが、容量がはるかに小さく、短時間でダウンロードできます。
このトピックは、Docker の管理についてある程度の知識があることを前提としており、Docker の管理手順については詳しく説明しません。
システム要件
Windows Docker コンテナで UFT One テストを実行するには、Windows Server 2016 オペレーティング・システムが必要です。
概要
Docker コンテナで UFT One テストを実行するには、次の手順を実行する必要があります。この手順については、以下で詳しく説明します。
- Docker ハブから UFT One Docker イメージをプルする。
- Docker イメージに基づいてコンテナを作成する。
- コンテナに UFT One のコンカレント・ライセンスをインストールする。
- Docker コンテナで UFT One テストを実行する。
使用する各 UFT One Docker コンテナに UFT One ライセンスをインストールする必要があります。これは、次のいずれかの方法で行うことができます。
-
UFT One ライセンスをインストールした後、このコンテナを新しいイメージにコミットします。この新しいイメージに基づいて残りのすべてのコンテナを作成して、ライセンスの追加インストールを回避します。
-
UFT One ライセンスをインストールした後、後続の実行に同じコンテナを使用し、必要に応じてコンテナを停止および開始します。
-
新しいコンテナを作成し、コンカレント・ライセンスをインストールしてからテストを実行する Docker コマンドを使用します。
UFT One Windows Docker コンテナのセットアップ
前提条件
Docker をコンピュータにインストールしてセットアップし、Docker Hub から Docker イメージをプルできるようにします。これにより、コンピュータが Docker ホストとしてセットアップされます。
Microsoft のドキュメントの説明に従って、Docker エンジンとクライアントをインストールします。
Docker のセットアップ方法の詳細については、Docker のドキュメントを参照してください。
UFT Docker イメージのプル
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker pull <UFT One Docker イメージ名>[:tag]
UFT One Docker イメージの名前は functionaltesting/uft または functionaltesting/uft-lite です。
[:tag] は、特定の UFT One イメージバージョンに追加するオプションのフラグです。標準設定では、tag の値は latest
です。
UFT Docker イメージからの Docker Windows コンテナの作成
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker run -it --name <コンテナ名> <UFT One Docker イメージ名>[:tag] "cmd.exe"
このコマンドによって、コンテナが作成され、コンテナに属するコマンド・ウィンドウが開きます。このウィンドウを次のステップで使用して、UFT One ライセンスをインストールします。
注意: UFT One Docker イメージは Windows 10 に基づいています。別の OS の Docker ホストを使用すると、OS に互換性がないというメッセージが表示される場合があります。この問題を回避するには、Docker のドキュメントを参照してください。たとえば、コマンドに --isolation=hyperv
を追加すると、問題が解決する場合があります。
Docker コンテナへの UFT One コンカレント・ライセンスのインストール
UFT One の Docker イメージは、コンカレント・ライセンスでのみサポートされます。Docker コンテナが UFT One を使用するたびに、サーバからライセンスが消費されます。
Docker コンテナのコマンド・ウィンドウで、コンテナに UFT One のコンカレント・ライセンスをインストールします。詳細については、「コマンド・ラインを使用したライセンスの管理」を参照してください。
Docker コンテナでのモバイル・テストの実行
Docker コンテナをインストールして設定した後、UFT One と UFT Mobile の統合をセットアップし、UFT One オートメーション・スクリプトを作成して、Docker コンテナで実行します。
UFT One と UFT Mobile の統合の設定
モバイル・デバイスでテストを実行するには、UFT Mobile とアプリケーションを統合用にセットアップする必要があります。詳細については、「UFT Mobile と UFT One の統合のセットアップ」を参照してください。
次のステップで作成する UFT One オートメーション・スクリプトは、UFT Mobile への接続をセットアップします。
UFT Mobile による UFT One オートメーション・スクリプトの作成
Docker コンテナで UFT One テストを実行するには、UFT Mobile でテストを実行するのに必要な特定のステップを含む UFT One オートメーション・スクリプトを使用します。
スクリプトには、次の動作を含める必要があります。
- UFT One を起動する。
- MCConnection オプション・オブジェクトを使用して、UFT One から UFT Mobile への接続を設定する。
- Launch メソッドを使用してアプリケーションを起動する。
- UFT One テストを実行する。
- テストを閉じる。
- UFT One を閉じる。
以下は、UFT Mobile で特定のテストを実行するために使用されるサンプル・スクリプトです。
Dim qtApp 'As QuickTest.Application ' Declare the Application object variable Set qtApp = CreateObject("QuickTest.Application") qtApp.Launch qtApp.Visible = True qtApp.Options.MCConnection.Server = "<UFT Mobile サーバ>" qtApp.Options.MCConnection.Port = "<UFT Mobile サーバ・ポート>" qtApp.Options.MCConnection.Username = "<UFT Mobile サーバ・ユーザ名>" qtApp.Options.MCConnection.Password = "<UFT Mobile サーバ・ユーザ・パスワード>" qtApp.Options.MCConnection.UseSSL = false qtApp.Options.MCConnection.SharedSpace = "<UFT Mobile サーバ・テナント ID>" qtApp.Options.MCConnection.WorkSpace = "<UFT Mobile サーバ・ワークスペース ID>" qtApp.Options.MCConnection.ShowRemoteWndOnRun = true qtApp.Open "<UFT スクリプト・パス>", True Set qtMobileLauncher = qtApp.Test.Settings.Launchers("Mobile") qtMobileLauncher.Lab = "MobileCenter" qtMobileLauncher.Device.OS = "<デバイスの OS タイプ>" qtMobileLauncher.Device.ID = "<デバイスの UDID>" Set launchApp = qtMobileLauncher.LaunchOnStart launchApp.IsPackaged = True launchApp.Counter = 1 qtMobileLauncher.InstallApps = true qtMobileLauncher.RestartApps = true qtMobileLauncher.UninstallApps = false qtMobileLauncher.TrackCPUMetric = true qtMobileLauncher.TrackMemoryMetric = true qtMobileLauncher.TrackFreeMemoryMetric = true qtMobileLauncher.TrackLogs = true Set qtpResultsOpt = CreateObject("QuickTest.RunResultsOptions") 'create the run Results Options object qtpResultsOpt.ResultsLocation = “<HTML レポート・パス>” qtApp.Test.Run qtpResultsOpt ' Run the test qtApp.Test.Close qtApp.Quit
注意: オートメーション・スクリプトで使用するためにこのテキストをコピーする場合は、必ず UFT Mobile サーバ接続の詳細のプレースホルダを、使用する UFT Mobile サーバの値に置き換えてください。
詳細については、次を参照してください。
Docker コンテナでの UFT One オートメーション・スクリプトの実行
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker run -it --name <container-name> -v <host-directory>:<container-directory> <UFT One Docker イメージ名>[:tag] cmd //[:tag] を追加して UTF イメージのバージョンを指定します。標準設定は 'latest' です。
コンテナに UFT One のコンカレント・ライセンスをインストールします。「コマンド・ラインを使用したライセンスの管理」を参照してください。
cd <container-directory>
<script-name>.vbs //Run the AOM script
ここで、
パラメータ名 | 説明 |
---|---|
<container-name> |
Docker コンテナの名前。一意のコンテナ名を使用して、新しいコンテナを作成します。 |
<host-directory> |
オートメーション・スクリプトが保存されているマシン上のホスト・ディレクトリのフル・パス。 このディレクトリは、Docker コンテナの <container-directory> の場所にマウントされます。 |
<container-directory> | <host-directory> がマウントされている Docker コンテナ上のディレクトリのフル・パス。 |
<UFT One Docker イメージ名> |
UFT One の Docker イメージの名前。値は Functionaltesting/uft または functionaltesting/uft-lite です。 |
<script-name> | UFT One テストを実行するように設定した UFT One オートメーション・スクリプトの名前。 |
注意: 特定の UFT One イメージバージョンのオプションの [:tag] を含めます。標準設定では、tag の値は latest
です。
Docker コンテナでの UFT One API テストの実行
UFT One バージョン 15.0.1 以降でサポート
以下のいずれかの方法で API テストを実行します。
前提条件
- 前述の手順に従って、UFT One Docker コンテナをセットアップします。
- ホスト・コンピュータで、API テスト用のローカル・ディレクトリを作成し、テスト・フォルダを保存します。Docker は、このディレクトリを Docker コンテナ内のディレクトリにマウントします。
UFT One ライセンスをインストールして作成したイメージに基づく新しいコンテナでテストを実行するには
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker run -v <host-test-directory >:<container-test-directory> --name <container-name> <image-with-licensed-uft> "<UFT One installation folder>\bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
ここで、
パラメータ名 | 説明 |
---|---|
<container-name> |
この実行のために作成する Docker コンテナの名前。 一意のコンテナ名を使用して、新しいコンテナを作成します。 |
<host-test-directory> |
ホスト・コンピュータでの API テストへの完全パス。 このディレクトリは、Docker コンテナの <container-test-directory> の場所にマウントされます。 例:C:\DockerProject\tests\apitest。C:\DockerProject\tests は、テスト用に作成したローカル・ディレクトリで、apitest は、このディレクトリに保存したテストの名前です。 注:このパスのテスト名の部分では、大文字と小文字が区別されます。 |
<image-with-licensed-uft> | UFT One ライセンスのインストール後にコミットしたイメージ。このイメージは、テストを実行する新しいコンテナを生成するために使用されます。 |
<container-test-directory> | <host-test-directory> がマウントされている Docker コンテナ上のディレクトリのフル・パス。 |
<report-directory-path> |
(オプション)テスト結果を保存するディレクトリへのパス。<container-test-directory> からの相対パスを指定します。 標準設定では、結果はテスト・フォルダの下に保存され、以前の実行結果が上書きされます。 |
たとえば、ホスト・テスト・ディレクトリが C:\DockerProject\tests で、テスト名が apitest の場合、コマンドは次のようになります。
docker run -v C:\DockerProject\tests\apitest:C:\tests\apitest --name apirun functionaltesting/uft:latest "C:\Program Files (x86)\Micro Focus\Unified Functional Testing\bin\HP.ST.Fwk.InternalExecuter.exe" -test C:\tests\apitest
既存のコンテナでテストを実行するには
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker exec -it <container-name> "<UFT One installation folder>\bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
ここで、
パラメータ名 | 説明 |
---|---|
<container-name> |
この実行に使用する既存の Docker コンテナの名前。 ヒント: このコマンドを実行する前に、コンテナが実行されていることを確認してください。 |
<container-test-directory> | <host-test-directory> がマウントされている Docker コンテナ上のディレクトリのフル・パス。 |
<report-directory-path> |
(オプション)テスト結果を保存するディレクトリへのパス。<container-test-directory> からの相対パスを指定します。 標準設定では、結果はテスト・フォルダの下に保存され、以前の実行結果が上書きされます。 |
たとえば、コンテナ名が apirun、ホスト・テスト・ディレクトリが C:\DockerProject\tests、テスト名が apitest の場合、コマンドは次のようになります。
docker exec -it apirun "C:\Program Files (x86)\Micro Focus\Unified Functional Testing\bin\HP.ST.Fwk.InternalExecuter.exe" -test C:\tests\apitest -reportPath result1
Jenkins を使用した、Docker での UFT One API テスト実行のトリガ
UFT One バージョン 15.0.1 以降でサポート
Docker コンテナをセットアップした後、Jenkins を使用して UFT One API テストの実行をトリガできます。
-
ホスト・コンピュータで、API テスト用のローカル・ディレクトリを作成し、テストを保存します。
-
Docker コンテナをスレーブとして Jenkins に追加します。
-
ビルド・ステップを追加し、[Execute Windows batch command]を選択します。
-
このステップにコマンドを挿入してテストをトリガします。次のいずれかを実行します。
-
ライセンスのインストール後にコミットされた UFT One Docker イメージに基づいて新しいコンテナを作成し、API テストを実行します。
docker run -v <host-test-directory >:<container-test-directory> --name <container-name> <image-with-licensed-uft> "<UFT One installation folder>\bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
-
ダウンロードした UFT One イメージに基づいて新しいコンテナを作成し、このコンテナにコンカレント・ライセンスをインストールして、API テストを実行します。
docker run -dit --name <container-name> -v <host-test-directory >:<container-test-directory> <UFT One Docker image name>[:tag] cmd.exe /C " " <UFT One installation folder>/bin/HP.UFT.LicenseInstall.exe" concurrent <license ID> <license version> <primary server name/address>:<port> & "<UFT One installation folder>/bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
このコマンドの詳細については、「Docker コンテナでの UFT One API テストの実行」を参照してください。
-
その他の参照項目: