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 テストを実行するには、次の手順を実行する必要があります。この手順については、以下で詳しく説明します。

  1. Docker ハブから UFT One Docker イメージをプルする。
  2. Docker イメージに基づいてコンテナを作成する。
  3. コンテナに UFT One のコンカレント・ライセンスをインストールする。
  4. 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 OneUFT Mobile の統合をセットアップし、UFT One オートメーション・スクリプトを作成して、Docker コンテナで実行します。

UFT OneUFT 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\apitestC:\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 テストの実行をトリガできます。

  1. ホスト・コンピュータで、API テスト用のローカル・ディレクトリを作成し、テストを保存します。

  2. Docker コンテナをスレーブとして Jenkins に追加します。

  3. ビルド・ステップを追加し、[Execute Windows batch command]を選択します。

  4. このステップにコマンドを挿入してテストをトリガします。次のいずれかを実行します。 

    • ライセンスのインストール後にコミットされた 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 テストの実行」を参照してください。

先頭に戻る

その他の参照項目: