UFT One と Jenkins
Jenkins の継続的インテグレーション・プロセスの一部として UFT One テストを実行します。
Application Automation Tools プラグインを使用した Jenkins サーバのセットアップ
UFT One テストを実行するように Jenkins サーバをセットアップします。
次の手順を実行します。
-
Jenkins と Application Automation Tools プラグインをインストールします。詳細については、GitHub 上の Jenkins プラグインを参照してください。
-
Jenkins サーバのホームページで[New Job]をクリックするか、既存のジョブを選択します。
新しいジョブの作成を選択した場合、ジョブ名を入力します。
- [Build a free-style software project]を選択して、[OK]をクリックします。
続いて、次のいずれの手順に進みます。
ローカル UFT One テストを実行するジョブのセットアップ
1 つまたは複数のローカル UFT One テストを実行するジョブをセットアップします。
このジョブのテスト実行用に 1 つ以上の実行ノードを選択します。
次の手順を実行します。
-
Jenkins ジョブの[General]セクションで、[This project is parameterized]を選択します。
-
[Add Parameter]>[Node]を選択し、次のノード・オプションを入力または定義します。
Name ノード定義の名前を定義します。 Default nodes ジョブが外部プロセスによってトリガされたときに使用するデフォルト・ノードを 1 つ以上選択します。
Possible nodes ジョブを手動で作成するときに使用するノードを 1 つ以上選択します。
ビルド・オプション ビルドをトリガする際のノードの選択方法として、次のいずれかのオプションを選択します。
-
Run next build only if build succeeds
-
Run next build only if build succeeds or is unstable
-
Run next build regardless of build result
-
Allow multi-node selection for concurrent builds:[Execute concurrent builds if necessary]が設定されたジョブの場合に必要です。
設定すると、選択したすべてのノードでビルドが並列実行されます。このジョブを作成する前に、選択したすべてのノードがオンラインであることを確認してください。
-
Disallow multi-node selection when triggering build manually:ビルドをトリガする際にユーザがビルド・ノードを選択できるようにするには、このオプションを選択します。
Node eligibility オフラインまたは一時的にオフラインのノードの処理方法を選択します。
- All Nodes:オンライン/オフラインの状態に関わらず、選択したすべてのノードでジョブをトリガします。
- Ignore Offline Nodes:テストの実行に利用可能な UFT One インスタンスがあるオンラインのノードでのみジョブをトリガします。
- Ignore Temp Offline Nodes:現在オフラインとしてマークされているノードを除く、選択したすべてのノードでジョブをトリガします。
Description ノード設定の説明を定義します。 -
注意: 失敗シナリオを設定する場合、ここで設定するノードと、失敗シナリオで選択するノードが一致する必要があります。
詳細については、「テスト実行の失敗シナリオの設定」を参照してください。
ヒント: UFT One Jenkins プラグインは、ジョブのノードを定義するためのさまざまな方法をサポートしています。このトピックでは、最も一般的に使用される、推奨手順の 1 つについて説明します。
詳細については、Jenkins プラグインの GitHub ページで「Create an execution node」を参照してください。
- [Build]セクションまで下にスクロールし、[Add build step]をクリックして、[Execute Micro Focus tests from file system]を選択します。
-
[Tests]ボックスに、完全な絶対パスを使用してテストを入力するか、1 つ以上のテストを含むフォルダまたは MTB を入力します。
複数のエントリを指定するには、フィールドの右側にある下矢印をクリックし、各テスト・パスを別々の行に入力します。それらのパスがローカル・ネットワークのすべてのマシンからアクセスできることを確認します。
ヒント: 別の方法として、テストとそのパラメータのリストを含むバッチ・ファイルを示すこともできます。詳細については、「バッチ・ファイルを使用した複数のテストの指定」を参照してください。
-
Results directory テスト結果を保存する場所を指定します。結果ファイルには、ディレクトリ内の既存のテスト結果が上書きされないように、名前が付けられます。 UFT One parallel running mode 複数の環境でテストを実行する場合に選択します。
詳細については、「複数の環境でのテストの並列実行」を参照してください。
Timeout タイムアウトを秒単位で示します。この時間が経過すると、ジョブは失敗します。
テストが失敗して他のテストを実行できなかった場合でも、このビルド・ステップで完了したすべてのテストの UFT One 実行結果を Jenkins でロードするために、タイムアウトの設定が必要になります。
Run Mode テストの UFT One 実行モードを定義します。
- [UFT One-specific settings]を選択します。
- [Run Mode]ドロップダウン・リストから、[Fast]または[Normal]を選択します。
詳細については、「 [テスト実行]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)」を参照してください。
失敗シナリオの設定 テストまたはテスト・セット内のテストが失敗した場合に UFT One が実行するアクションを設定します。
詳細については、「テスト実行の失敗シナリオの設定」を参照してください。
重要: 並列テスト実行と失敗シナリオを組み合わせて設定することはお勧めしません。組み合わせて設定することで、UFT One が予期しない動作をする可能性があります。
- [Apply]をクリックして変更を保存し、ビルド・ステップの追加を続けます。ビルド・ステップの追加が完了したら、[Save]をクリックします。
-
ビルド後のアクションを追加して、UFT One テスト結果の設定を定義します。
[Post-build Actions]セクションで、[Add post-build action]をクリックし、[Publish Micro Focus test result]を選択します。
次のいずれかのアーカイブ・オプションを選択します。
Archive test reports for failed tests 失敗したテストのテスト結果レポートのみを保存します。 Always archive test reports 常にテスト結果レポートを保存します。 Do not archive test reports 常にテスト結果を保存しません。 -
標準の Jenkins ジョブの場合と同じように、ジョブを実行したり、スケジュールを設定したりします。
テストが完了したら、「テスト実行結果の確認」に進みます。
セキュリティ上の注意
機密情報は暗号化およびエンコードされますが、Micro Focus では、Jenkins ジョブによって生成された不要なファイルを定期的に削除することをお勧めします。これらのファイルが Micro Focus の Jenkins Application Automation Tools プラグインによって削除されることはありません。
これらのファイルは、<Jenkins インストール・フォルダ>\workspace\<ジョブ名> フォルダに格納されています。
ファイルを削除しない場合、システムのセキュリティ・リスクが増大する可能性があります。お客様は、関連するすべてのリスクを引き受け、Micro Focus を免責することに同意するものとします。
お客様側の規制およびビジネス要件の評価は、常にお客様の責任になります。Micro Focus は、Micro Focus の製品がお客様のビジネスを遂行する上でお客様に適用される特定の法的基準または規制基準に準拠していることを表明も保証もしません。
バッチ・ファイルを使用した複数のテストの指定
バッチ・ファイルでテストとパラメータを指定して、複数のテストをトリガするように Jenkins ジョブを設定します。
複数のテストを指定するか、毎回パラメータを変えて同じテストを複数回指定します。テストへのパスを指定する際は、パス名として Jenkins の環境変数がサポートされます。
バッチ・ファイルに .mtbx という拡張子を付けます。以下は、構文の例です。
<Mtbx>
<Test name="test1" path="c:\tests\APITest1">
<Parameter name="A" value="abc" type="string"/>
….
</Test>
<Test name="test2" path="${WORKSPACE}\test2">
<Parameter name="p1" value="123" type="int"/>
<Parameter name="p4" value="123.4" type="float"/>
….
</Test>
</Mtbx>
ビルド設定の続行
バッチ・ファイルの定義が完了したら、メインのビルド設定手順に戻ります。
複数の環境でのテストの並列実行
複数の環境で一連の Web テストまたはモバイル・テストを並列で実行するように Jenkins を設定します。
設定すると、各テストは順番に実行されます。各テストの実行中に、複数の環境が同時にテストされます。
次の手順を実行します。
-
Execute Micro Focus tests from file system ビルド・ステップで、[UFT One parallel running mode]オプションを選択します。
-
UI 設定ダイアログを使用して、テストの実行セットごとに 1 つ以上の環境を定義します。
注意: モバイル・デバイスでテストを実行するには、UFT Mobile 接続を設定する必要があります。
詳細については、「モバイル・テストと Jenkins の統合」を参照してください。
[Tests]ボックスに、完全な絶対パスを使用してテストを入力するか、1 つ以上のテストを含むフォルダまたは MTB を入力します。
-
複数のエントリを指定するには、フィールドの右側にある下矢印をクリックし、各テスト・パスを別々の行に入力します。それらのパスがローカル・ネットワークのすべてのマシンからアクセスできることを確認します。
- 別の方法として、テストとパラメータのリストを含むバッチ・ファイルを示します。詳細については、「バッチ・ファイルを使用した複数のテストの指定」を参照してください。
次の手順を実行します。
-
[Mobile]または[Web]を選択します。
-
[Environment wizard]をクリックして、ブラウザまたはデバイスを選択します。
-
[+ Environment]をクリックして、実行セットの新しい環境を追加します。UFT One は、最大 4 つの並列テスト実行をサポートします。
5 つ以上の環境を構成する場合、後続の各環境はキューで待機します。
- [+ EXECUTION SET]をクリックして、定義済みの独自の環境で、実行する新しいテストのセットを追加します。
ビルド設定の続行
並列テスト実行の定義が完了したら、メインのビルド設定手順に戻ります。
テスト実行の失敗シナリオの設定
テストまたはテスト・セット内の特定のテストが失敗した場合に UFT One が実行するアクションを設定します。
次の手順を実行します。
-
Execute Micro Focus tests from file system ビルド・ステップで、[UFT One-Specific Settings]ボタンをクリックします。
-
[On failure]オプションを選択してから、次のいずれかを選択します。
オプション 説明 Jenkins プラグイン・バージョン 6.3 以前 Rerun the entire set of tests いずれかのテストが失敗した場合に、このビルド・ジョブによって実行されるすべてのテストを再実行するには、このオプションを選択します。
オプション名は[Of any of the build's tests]です。 Rerun specific tests in the build 1 つ以上の特定のテストのみの失敗シナリオを定義するには、このオプションを選択します。これにより、テスト・セット内のすべてのテストではなく、特定の失敗したテストを再実行できます。詳細については、「特定のテストの失敗シナリオの設定」を参照してください。
オプション名は、[Of a specific test in the build]です。 Rerun only failed tests 失敗したすべてのテストを再実行するには、このオプションを選択します。 このオプションはありません。 -
1 つまたは複数のテストの再実行を処理するノードを選択します。
注意: ここで選択するノードは、ビルド・ジョブ設定の[General]セクションで設定したノードと一致させてください。これにより、このジョブで実行されるテストで、確実に正確なテスト・パスを使用できます。
詳細については、「ジョブの実行ノードの選択」を参照してください。
-
[Reruns]フィールドで、1 つまたは複数のテストを再実行する回数を定義します。
-
[Cleanup test]フィールドで、テスト・セット全体が実行され、障害が発生した後に、クリーンアップとして実行するオプションのテストを定義します。定義されたテストは、新しいテストが再実行される前に実行され、テスト実行のための正しい環境を作成します。
失敗した特定のテストのみを再実行するオプションを選択した場合は、次のように再実行するようにテストを設定します。
-
テストのリストには、このビルド・ジョブに含まれるすべてのテストが表示されます。失敗した場合に再実行する各テストのチェックボックスを選択します。
-
次のいずれかを実行します。
テストごとに失敗シナリオを定義する 選択したテストごとに、テストを再実行する回数と、再実行する前に実行するクリーンアップ・テストを定義します。
選択したすべてのテストに値をコピーする 定義済みのメインの失敗シナリオを、以下で選択したすべてのテストにコピーします。
メインの[Reruns]フィールドの横にある[Copy/Paste]ボタンをクリックします。
テストごとの定義をすべてクリアするには、[Clear]をクリックします。
ビルド設定の続行
失敗シナリオの定義が完了したら、メインのビルド設定手順に戻ります。
テスト実行結果の確認
UFT One テスト結果を表示するには、次の手順を実行します。
-
左側のツールバーの[UFT One Report]アイコンをクリックします。UFT One レポート・ページが開き、テスト実行(テスト名、ステータス、レポートへのリンクなど)の一覧を表示する表が表示されます。
-
リンクをクリックして、目的のレポートを開きます。
-
HTML レポート:ブラウザは HTML レポートを開きます。
複数のテストを並列で実行した場合、レポートには実行されたすべてのテストの結果が含まれます。詳細については、「ParallelRunner の応答と実行結果の例」を参照してください。
問題:HTML レポートが開かない。考えられる原因:バージョン 1.641(または 1.625.3)以降の Jenkins には Content-Security-Policy ヘッダが導入されています。これにより、UFT One HTML レポートへのリンクなど、特定のリンクがブロックされます。
回避策:
-
次のいずれかの場所から、リンクを使用せずにレポートを表示します。
実行ノードの該当するビルド ID の下の Jenkins 結果フォルダ。
Jenkins ビルド・フォルダ内のマスタ Jenkins マシン。%jenkins% \jobs\<job_name>\builds\<job_count>\archive\UFTReport フォルダに移動します。たとえば、C:\Program Files (x86)\Jenkins\jobs\Uft-htmlReport\builds\80\archive\UFTReport\GuiTest2\run_results.html です。
ジョブの設定で場所として指定した Results directory。
-
ブラウザ・リンクを許可するように Jenkins システム・プロパティを設定します。
[Manage Jenkins]>[Script Console]をクリックします。スクリプト・コンソールで、次の行を入力し、[Run]を押します。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
-
-
実行結果レポート:zip ファイルのダウンロードが開始します。zip ファイルの中身を展開します。展開した zip ファイルには、Run Results Viewer で表示できる結果ファイルが含まれています。
Run Results Viewer を使った結果の表示次の手順を実行します。
- Run Results Viewer を開き、[ファイル]>[OK]を選択します。
- [開く]ダイアログ・ボックスで、[結果 XML ファイル]を選択し、展開したフォルダ内の Results.xml ファイルに移動します。
- [OK]をクリックして、結果を表示します。
-
注意:
-
このビルド・ジョブのログには、PerScenarioTimeout や FileSystemTestRunner など、多数のタイムアウト・メッセージが表示されます。
PerScenarioTimeout は、LoadRunner Professional テストにのみ関連するため、無視できます。
-
ビルド後のステップを追加して、JUnit テスト結果レポートをパブリッシュすることもできます。これにより、UFT One .xml 結果ファイルが JUnit レポートに変換されます。
ALM からの機能テスト・セットの実行
Jenkins を使用して、ALM のテスト・セットからサーバ側の自動機能テストを実行します。ALM テスト・セットを使用すると、特定のテスト目標に従って ALM テスト・ラボ・モジュールでテストの実行を整理できます。
注意: ALM からのテスト実行では、並列テストはサポートされていません。
詳細については、ALM ヘルプセンターを参照してください。
ALM からのテスト・セット実行をトリガする Jenkins ジョブの設定
次の手順を実行します。
-
Jenkins ジョブで、[Build]セクションまで下にスクロールし、[Add build step]をクリックして、[Execute functional tests from Micro Focus ALM]を選択します。
-
設定済みの ALM サーバの 1 つを選択し、サーバの資格情報、プロジェクト、およびドメインを入力します。
ALM サーバに必要な認証タイプに応じて、資格情報はユーザ名とパスワード、または SSO 認証用の API キーになります。
SSO 認証を使用するには、[SSO enabled]を選択し、ALM サイト管理者から取得したクライアント ID と API キー・シークレットを入力します。
注意: ALM スケジューラを使用している場合は、Jenkins エージェント・ユーザとして実行されます。
たとえば、Jenkins がシステム・ユーザとして実行されている場合、スケジューラはシステム・ユーザとしてテストを実行します。これはテストの実行には影響しません。
詳細については、「Jenkins サーバでの ALM 資格情報の定義」を参照してください。
-
ALM パスを使用して、テスト・セット・フォルダ、または含める特定のテスト・セットを追加します。
-
特定のテストを追加するには、テスト・セットパスの後にテスト名を追加します。
-
複数のエントリを追加するには、フィールドの右側にある下矢印をクリックし、各項目を別々の行に入力します。
例:
Root\testfolder1\testset_a
Root\testfolder1\testset_b
Root\testlab_folder
Root\testlab_folder\testset_a\test-name
-
-
必要に応じて、テストに使用するテスト・パラメータを追加します。
[Test sets]領域で、次の構文を使用します。
<test or test set path> "<parameter name>":"<string value>", "<parameter name>": <number value>
ここで、
-
<test or test set path> は、テストまたはテスト・セットへのパスです。
テストを指定すると、指定したパラメータはそのテストにのみ使用されます。
テスト・セットを指定すると、指定したパラメータがそのテスト・セット内のすべてのテストに使用されます。テスト・セットが実行されると、各テストは必要なパラメータを使用し、他のパラメータを無視します。
-
<parameter name> はテスト・パラメータの名前です。
-
<string value> は、パラメータの文字列値を引用符で囲んだものです。
-
<number value> は、引用符なしのパラメータの数値です。
例:
TestSet\ "Country":"US", "Count": 3
TestSet2\ "Country":"UK"
TestFolder\Test1 "Country":"China", "Count": 4
ヒント: テストに必要なすべてのテスト・パラメータの値を指定するか、パラメータの標準設定値が UFT One または ALM で定義されていることを確認してください。
-
-
必要に応じて、タイムアウトを秒単位で示します。設定した時間が経過すると、ジョブは失敗します。
-
必要に応じて、ALM テスト・セットのフィルタを設定し、テスト・セット内のテストの一部のみを実行するように Jenkins に指示します。
[Filter ALM test sets]を選択し、実行するテストを名前またはステータス、あるいはその両方でフィルタリングします。
-
[Run tests with names containing]で、テスト名の中で検索する文字列を指定します。
- [Run tests with status]で、実行するテストのステータスを指定します。たとえば、すでに合格したテストを再実行しない場合は、Passed ステータスを選択から除外します。
-
-
[Advanced]をクリックして、ローカル、リモート、または予定ホストなどの実行モードを示します。
注意: リモート・ホスト・モードを指定する場合は、ホスト名も指定します。リモート・ホストは、有効な UFT One がインストールされているマシンである必要があります。
ユーザがマシンに手動でログインして UFT One を起動しなくても、Jenkins がテストを実行できるように UFT One マシンを設定することができます。詳細については、「リモート・セッションでの UFT One および UFT One テストの実行」を参照してください。
-
[Apply]をクリックして変更を保存し、ビルド・ステップの追加を続けます。ビルド・ステップの追加が完了したら、[Save]をクリックします。
- [Post-build Actions]セクションで、[Add post-build action]をクリックし、[Publish Micro Focus test result]を選択します。
-
標準の Jenkins ジョブの場合と同じように、ジョブを実行したり、スケジュールを設定したりします。
ALM の結果の確認
ALM のテスト実行結果を表示するには、次の手順を実行します。
- ダッシュボードでジョブをクリックします。
- [Console Output] リンクをクリックして、ALM の情報を表示します。
- ALM のリンクを Internet Explorer ブラウザにコピーし、ALM 内からテスト・セットの結果を表示します。
Jenkins サーバでの ALM 資格情報の定義
このセクションでは、Jenkins が ALM に保存されている UFT One テストを実行する際に ALM に接続するために使用する ALM 資格情報を定義し、使用する場所について説明します。
Jenkins プラグイン・バージョン | ALM の資格情報 |
---|---|
6.3 以前 |
ALM から UFT One テストを実行する各ジョブに資格情報を入力します。 |
6.4 以降 |
Jenkins の設定ページで ALM の資格情報をグローバルに定義します([Manage Jenkins]>[Configure System]、[Application Lifecycle Management]セクション)。 複数の ALM サーバおよび同じ ALM サーバ上の複数のユーザの資格情報を定義できます。 ALM サーバの要件に応じて、ユーザ名とパスワード、またはクライアント ID と API キー・シークレットのいずれかを定義します。 次に、ALM から UFT One テストを実行するジョブで、必要に応じて、設定済みの ALM ユーザ名または ALM クライアント ID から選択します。 |
ジョブ内で ALM の資格情報を定義し、その後 Jenkins プラグイン・バージョン 6.4 以降にアップグレードした場合:
-
ジョブ内の資格情報を編集することはできませんが、Jenkins はジョブの実行時に引き続きこの資格情報を使用します。
-
既存の Jenkins ジョブで定義された ALM の資格情報を Jenkins のグローバル設定領域に自動的に移動できます。
ビルド後のアクション Migrate ALM Credentials を使用して Jenkins ジョブを作成し、実行します。このジョブを初めて実行すると、ALM の資格情報がすべてのジョブから Jenkins の設定ページに移行されます。2 回目以降は、何の処理も実行されません。
その他の参照項目: