Docker コンテナでのテストの実行
OpenText Functional Testing Docker イメージを使用すると、メンテナンスとテストの実行が高速になります。
このトピックは、Docker の管理についてある程度の知識があることを前提としており、Docker の管理手順については詳しく説明しません。
利用可能な OpenText Functional Testing Docker イメージ
OpenText Functional Testing Docker イメージを使用して、Docker コンテナでテストを実行します。イメージは https://hub.docker.com/r/functionaltesting/ から入手できます。
OpenText Functional Testing イメージで、次の機能がサポートされています。
- Digital Lab および OpenText Functional Testing オートメーション・スクリプトを使用してモバイル・テストを実行する。
- Windows Docker 環境で API テストを実行する。
- OpenText Functional Testing オートメーション・スクリプトを使用して、Headless Chrome でテストを実行します。
- Linux Docker 環境で API テストを実行する。
次のイメージは、現在の OpenText Functional Testing バージョンで使用できます。
-
uft イメージ。OpenText Functional Testing がインストールされた Windows Docker のフル・イメージです。
-
uft_utils イメージは uft イメージに基づいていますが、追加のユーティリティ・ツールも含まれています。
-
uft_one_for_api_tests イメージは、OpenText Functional Testing ランタイム・エンジンがインストールされた Linux ベースのイメージです。
OpenText Functional Testing ユーティリティ Docker イメージを使用する利点
uft_utils イメージにより、次のように機能が拡張されます。
テストの実行が容易 | Windows Docker 環境で 1 つのコマンドを使用してテストを円滑かつ容易に実行できます。 |
複数の API テストの実行 | 1 つの Docker コマンドを使用して、指定したフォルダに格納されたすべての API テストを実行できるようになりました。 |
実行結果の JUnit レポートへの変換 | テストの実行後に、ReportConverter ユーティリティを使用して実行結果から JUnit レポートを作成できます。 |
CI-CD パイプラインでの Docker イメージの使用 | Docker イメージに組み込まれたユーティリティ・ツールを使用して、CI-CD パイプラインから Docker イメージでテストを実行できます。 |
OpenText Functional Testing ユーティリティ Docker イメージは、uft イメージよりも頻繁にリリースされます。このイメージの使用方法については、Docker Hub のイメージで利用可能なドキュメントを参照してください。
Windows Docker イメージのシステム要件
次のいずれかのオペレーティング・システムの Windows Docker コンテナでテストを実行できます。
-
Windows Server 2016
-
Windows 10
バージョン:2004、1903、1803
概要:OpenText Functional Testing の Docker イメージの使用
Docker コンテナでテストを実行するには、次の手順を実行する必要があります。この手順については、以下で詳しく説明します。
- Docker ハブから OpenText Functional Testing Docker イメージをプルする。
- Docker イメージに基づいてコンテナを作成する。
- コンテナに OpenText Functional Testing のコンカレント・ライセンスをインストールする。
- Docker コンテナでテストを実行する。
使用する各 Docker コンテナに OpenText Functional Testing ライセンスをインストールする必要があります。これは、次のいずれかの方法で行うことができます。
-
OpenText Functional Testing ライセンスをインストールした後、このコンテナを新しいイメージにコミットします。この新しいイメージに基づいて残りのすべてのコンテナを作成して、ライセンスの追加インストールを回避します。
-
OpenText Functional Testing ライセンスをインストールした後、後続の実行に同じコンテナを使用し、必要に応じてコンテナを停止および開始します。
-
新しいコンテナを作成し、コンカレント・ライセンスをインストールしてからテストを実行する Docker コマンドを使用します。
OpenText Functional Testing Docker コンテナを作成する前に
このセクションでは、OpenText Functional Testing Docker コンテナをセットアップするための準備方法について説明します。
前提条件
-
Docker をコンピュータにインストールしてセットアップし、Docker Hub から Docker イメージをプルできるようにします。これにより、コンピュータが Docker ホストとしてセットアップされます。
Microsoft のドキュメントの説明に従って、Docker エンジンとクライアントをインストールします。
Docker のセットアップ方法の詳細については、Docker のドキュメントを参照してください。
-
コンピュータでハードウェアとソフトウェアの仮想化を有効にします。
-
Docker が正しいタイプのコンテナを実行するように設定されていることを確認します。
Docker のトレイ・アイコンを右クリックします。メニュー・オプションに[Switch to Linux containers]が表示されていれば、Docker は Windows コンテナ用にセットアップされています。
OpenText Functional Testing Docker イメージのプル
OpenText Functional Testing Docker イメージをプルするには、ホスト・コンピュータのコマンド・ウィンドウで次のコマンドを実行します。
docker pull <OpenText Functional Testing Docker イメージ名>[:tag]
OpenText Functional Testing Docker イメージの名前は functionaltesting/uft、functionaltesting/uft_utils、または functionaltesting/uft_one_for_api_tests です。利用可能な OpenText Functional Testing Docker イメージのイメージの説明に基づいて、使用するイメージを選択します。
[:tag] は、特定のイメージ・バージョンに追加するオプションのフラグです。標準設定では、tag の値は latest
です。
Windows Docker コンテナのセットアップ
このセクションでは、OpenText Functional Testing Windows Docker コンテナをセットアップする方法について説明します。
-
プルした UFT Docker イメージから Docker Windows コンテナを作成するには、ホスト・コンピュータのコマンド・ウィンドウで次のコマンドを実行します。
docker run -it --name <コンテナ名> <OpenText Functional Testing Docker イメージ名>[:tag] "cmd.exe"
このコマンドによって、コンテナが作成され、コンテナに属するコマンド・ウィンドウが開きます。このウィンドウを次のステップで使用して、OpenText Functional Testing ライセンスをインストールします。
注: OpenText Functional Testing Docker イメージは Windows Server 2016 に基づいています。別の OS の Docker ホストを使用すると、OS に互換性がないというメッセージが表示される場合があります。この問題を回避するには、Docker のドキュメントを参照してください。たとえば、
コマンドに-isolation=hyperv
または-isolation=process
を追加すると、問題が解決する場合があります。
Windows Docker コンテナでの OpenText Functional Testing ライセンスのインストール
OpenText Functional Testing の Docker イメージは、コンカレント・ライセンスでのみサポートされます。Docker コンテナが OpenText Functional Testing を使用するたびに、サーバからライセンスが消費されます。
Docker コンテナのコマンド・ウィンドウで、コンテナに OpenText Functional Testing のコンカレント・ライセンスをインストールします。詳細については、コマンド・ラインを使用したライセンスの管理を参照してください。
Windows Docker コンテナでのモバイル・テストの実行
Windows Docker コンテナをインストールして設定した後、OpenText Functional Testing の Digital Lab との統合をセットアップし、OpenText Functional Testing オートメーション・スクリプトを作成して、Docker コンテナで実行します。
統合の設定
モバイル・デバイスでテストを実行するには、Digital Lab とアプリケーションを統合用にセットアップする必要があります。詳細については、Digital Lab と OpenText Functional Testing の統合のセットアップを参照してください。
次のステップで作成する OpenText Functional Testing オートメーション・スクリプトは、Digital Lab への接続をセットアップします。
OpenText Functional Testing モバイル・オートメーション・スクリプトの作成
Docker コンテナでテストを実行するには、OpenText Functional Testing オートメーション・スクリプトを使用します。このスクリプトには、Digital Lab でテストを実行するために必要なステップが含まれています。
スクリプトには、次の部分を含める必要があります。
- OpenText Functional Testing を起動する。
- DLConnection オプション・オブジェクトを使用して、OpenText Functional Testing から Digital Lab への接続を設定する。
- Launch メソッドを使用してアプリケーションを起動する。
- テストを実行します。
- テストを閉じる。
- OpenText Functional Testing を閉じる。
以下は、UFT Digital Lab で特定のテストを実行するために使用されるサンプル・スクリプトです。
Dim qtApp 'As QuickTest.Application ' Declare the Application object variable Set qtApp = CreateObject("QuickTest.Application") qtApp.Launch qtApp.Visible = True qtApp.Options.DLConnection.Server = "<UFT Digital Lab サーバ・アドレス>" qtApp.Options.DLConnection.Port = "<UFT Digital Lab サーバ・ポート>" qtApp.Options.DLConnection.Username = "<UFT Digital Lab サーバ・ユーザ名>" qtApp.Options.DLConnection.Password = "<UFT Digital Lab サーバ・ユーザ・パスワード>" qtApp.Options.DLConnection.UseSSL = false qtApp.Options.DLConnection.SharedSpace = "<UFT Digital Lab サーバ・テナント ID>" qtApp.Options.DLConnection.WorkSpace = "<UFT Digital Lab サーバ・ワークスペース ID>" qtApp.Options.DLConnection.ShowRemoteWndOnRun = true qtApp.Open "<テスト・スクリプト・パス>", True Set qtMobileLauncher = qtApp.Test.Settings.Launchers("Mobile") qtMobileLauncher.Lab = "DigitalLab" 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 Digital Lab サーバ接続の詳細のプレースホルダを、使用する UFT Digital Lab サーバの値に置き換えてください。
詳細については、次を参照してください。
Docker コンテナでのオートメーション・スクリプトの実行
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker run -it --name <container-name> -v <host-directory>:<container-directory> <OpenText Functional Testing Docker イメージ名>[:tag] cmd //[:tag] を追加してイメージのバージョンを指定します。標準設定は 'latest' です。
cd <container-directory>
<script-name>.vbs //オートメーション・スクリプトを実行します。
ここで、
パラメータ名 | 説明 |
---|---|
<container-name> |
Docker コンテナの名前。一意のコンテナ名を使用して、新しいコンテナを作成します。 |
<host-directory> |
オートメーション・スクリプトが保存されているマシン上のホスト・ディレクトリのフル・パス。 このディレクトリは、Docker コンテナの <container-directory> の場所にマウントされます。 |
<container-directory> | <host-directory> がマウントされている Docker コンテナ上のディレクトリのフル・パス。 |
<OpenText Functional Testing Docker イメージ名> |
OpenText Functional Testing Docker イメージ名。functionaltesting/uft です。 |
<script-name> | OpenText Functional Testing テストを実行するように設定した OpenText Functional Testing オートメーション・スクリプトの名前。 |
注: 特定の OpenText Functional Testing イメージバージョンのオプションの [:tag] を含めます。標準設定では、tag の値は latest
です。
Windows Docker コンテナでの API テストの実行
以下のいずれかの方法で OpenText Functional Testing API テストを実行します。
前提条件
- 前述の手順に従って、OpenText Functional Testing Docker コンテナをセットアップします。
- ホスト・コンピュータで、API テスト用のローカル・ディレクトリを作成し、テスト・フォルダを保存します。Docker は、このディレクトリを Docker コンテナ内のディレクトリにマウントします。
新しいコンテナでのテストの実行
OpenText Functional Testing ライセンスをインストールして作成したイメージに基づく新しいコンテナでテストを実行します。
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker run -v <host-test-directory >:<container-test-directory> --name <container-name> <image-with-license> "<Installdir>\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-license> | OpenText Functional Testing ライセンスのインストール後にコミットしたイメージ。このイメージは、テストを実行する新しいコンテナを生成するために使用されます。 |
<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)\OpenText\UFT One\bin\HP.ST.Fwk.InternalExecuter.exe" -test C:\tests\apitest
既存のコンテナでのテストの実行
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
docker exec -it <container-name> "<Installdir>\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)\OpenText\UFT One\bin\HP.ST.Fwk.InternalExecuter.exe" -test C:\tests\apitest -reportPath result1
Jenkins を使用した、Windows Docker コンテナでの API テスト実行のトリガ
Windows Docker コンテナをセットアップした後、Jenkins を使用して OpenText Functional Testing API テストの実行をトリガできます。
-
ホスト・コンピュータで、API テスト用のローカル・ディレクトリを作成し、テストを保存します。
-
Docker コンテナをエージェントとして Jenkins に追加します。
-
ビルド・ステップを追加し、[Execute Windows batch command]を選択します。
-
このステップにコマンドを挿入してテストをトリガします。次のいずれかを実行します。
-
ライセンスのインストール後にコミットされた OpenText Functional Testing Windows Docker イメージに基づいて新しいコンテナを作成し、API テストを実行します。
docker run -v <host-test-directory >:<container-test-directory> --name <container-name> <image-with-license> "<Installdir>\bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
-
ダウンロードした OpenText Functional Testing イメージに基づいて新しいコンテナを作成し、このコンテナにコンカレント・ライセンスをインストールして、API テストを実行します。
docker run -dit --name <container-name> -v <host-test-directory >:<container-test-directory> <OpenText Functional Testing Docker image name>[:tag] cmd.exe /C " " <Installdir>/bin/HP.UFT.LicenseInstall.exe" concurrent <license ID> <license version> <primary server name/address>:<port> & "<Installdir>/bin\HP.ST.Fwk.InternalExecuter.exe" -test <container-test-directory> -reportPath <report-directory-path>
このコマンドの詳細については、Windows Docker コンテナでの API テストの実行を参照してください。
-
Windows Docker コンテナでの Web テストおよび AI ベースの Web テストの実行
Docker での Web テストおよび AI ベースの Web テストは、Headless Chrome でのみ実行できます。このセクションでは、Docker の Headless Chrome でこのようなテストを実行するための OpenText Functional Testing オートメーション・スクリプトを作成する方法について説明します。
Docker コンテナ内の Headless Chrome で Web テストと AI ベースの Web テストを実行するには、次の手順を実行します。
-
前提条件:Windows Docker コンテナをセットアップし、Headless Chrome でのテストの実行の準備で説明されているすべての手順を実行していることを確認します。
-
次の動作を含む OpenText Functional Testing オートメーション・スクリプトを作成します。
-
OpenText Functional Testing を起動する。
-
WebLauncher オブジェクトを使用してブラウザの種類を設定します。
AI ベースの Web テストを実行するには、AI オブジェクト検出を有効にする必要があります。AI オブジェクト検出は標準設定で有効になっていますが、必要に応じて、有効にするステップを追加します。
-
テストを実行します。
-
テストを閉じる。
-
OpenText Functional Testing を閉じる。
以下はサンプル・スクリプトです。
Copy codeDim qtApp 'As QuickTest.Application ' Declare the Application object variable
Dim qtTest 'As QuickTest.Test ' Declare a Test object variable
Dim qtResultsOpt 'As QuickTest.RunResultsOptions ' Declare a Run Results Options object variable
Dim qtAutoExportResultsOpts 'As QuickTest.AutoExportReportConfigOptions ' Declare the Automatically Export Report Configuration Options object variable
Set qtApp = CreateObject("QuickTest.Application") ' Create the Application object
qtApp.Launch ' Start OpenText Functional Testing
qtApp.Visible = False ' Make the OpenText Functional Testing application invisible
qtApp.Open "c:\tests\Headless" '
'Set run settings for the test
Set qtTest = qtApp.Test
'Set RnR setting
qtApp.Test.Settings.Launchers("Web").Active = True
qtApp.Test.Settings.Launchers("Web").Browser = "CHROME_HEADLESS"
Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions")
qtResultsOpt.ResultsLocation = "c:\tests\reports"
qtTest.Run qtResultsOpt ' Run the test
qtApp.Test.Close
qtApp.Quit -
-
ホスト・コンピュータのコマンド・ウィンドウで、次のコマンドを実行します。
Copy codedocker run -it --name <container-name> -v <host-directory>:<container-directory> <OpenText Functional Testing Docker イメージ名>[:tag] cmd //[:tag] を追加してイメージのバージョンを指定します。標準設定は 'latest' です。
cd <container-directory>
<script-name>.vbs //オートメーション・スクリプトを実行します。注:
-
コマンド内のパラメータを実際の値で置き換えます。これらのパラメータの情報については、Windows Docker コンテナでのモバイル・テストの実行を参照してください。
-
AI オブジェクト認識を使用するステップを含むテストを実行する場合は、ヘッドレス・ブラウザでのテストで説明されている制限事項に注意してください。
-
Linux Docker コンテナでの API テストの実行
Linux Docker コンテナでの API テストの実行は、テクニカル・プレビューとしてサポートされています。
OpenText Functional Testing Docker コンテナを作成する前にの説明に従って、前提条件を準備して uft_one_for_api_tests イメージをプルします。
OpenText Functional Testing API テストの実行には、コンカレント・ライセンスが必要です。
次のコマンドを実行して OpenText Functional Testing ライセンスをインストールし、API テストを実行します。
docker run -it -v <host-test-directory>:<container-test-directory> functionaltesting/uft_one_for_api_tests[:tag] -test <container-test-directory> -reportPath <report-directory-path> -licenseServer <License_server_ip>:<port>
ここで、
パラメータ名 | 説明 |
---|---|
<host-test-directory> |
ホスト・コンピュータでの API テストへの完全パス。このディレクトリはコンテナ・テスト・ディレクトリにマウントされます。 |
<container-test-directory> |
<host-test-directory> がマウントされている Docker コンテナ上のディレクトリのフル・パス。 例:C:\DockerProject\tests\apitest。C:\DockerProject\tests は、テスト用に作成したローカル・ディレクトリで、apitest は、このディレクトリに保存したテストの名前です。 |
<report-directory-path> |
(オプション)テスト結果を保存するディレクトリのパス。<container-test-directory> からの相対パスを指定します。 標準設定では、結果はテスト・フォルダの下に保存され、以前の実行結果が上書きされます。 |
<License_server_ip>:<port> | コンカレント・ライセンス・サーバの IP アドレスとポート番号。 |
テクニカル・プレビューの範囲
次の表に、Linux ベースのイメージ上の API テストで実行できるアクティビティを示します。
サポートされているアクティビティ | サポートされていないアクティビティ |
---|---|
日付/時刻 |
CoAP |
フロー |
データベース |
FTP | 外部 GUI/API テストの呼び出し |
HTTP |
File |
JSON |
IBM Websphere MQ |
数値演算 |
JMS |
REST |
Java |
SOAP |
MQTT |
文字列 |
SAP |
システム変数 |
WebSocket |
XML |
|
その他の操作 |
その他の参照項目: