Jenkins を使用したローカルの UFT One テストのトリガ

このトピックでは,ローカル・マシンに保存されている UFT One テストを実行する方法について説明します。

ローカルの UFT One テストの実行

1 つまたは複数のローカル UFT One テストを実行するように Jenkins ビルド・ステップを設定します。

UFT One テストを実行するように Jenkins ビルド・ステップを設定するには

  1. フリースタイル・プロジェクトの場合は,Jenkins ジョブの[Project Configuration]セクションで,[Build]セクションまでスクロールし,[Add build step]をクリックして,[Execute Micro Focus tests from file system]を選択します。

    注: パイプラインの場合,[Pipeline Syntax]ページで[Sample Step]ドロップダウンから[runFromFSBuilder]または[UFTScenarioLoad]を選択し,スクリプトを生成して,そのスクリプトをパイプライン・スクリプト・ボックスにコピーします。

    UFTScenarioLoad オプションは廃止され,後方互換性のためにのみサポートされています。

  2. Tests]ボックスに,完全な絶対パスを使用してテストを入力するか,1 つ以上のテストを含むフォルダまたは MTB を入力します。

    複数のエントリを指定するには,フィールドの右側にある下矢印をクリックし,各テスト・パスを別々の行に入力します。それらのパスがローカル・ネットワークのすべてのマシンからアクセスできることを確認します。

    ヒント: 別の方法として,テストとそのパラメータのリストを含むバッチ・ファイルを示すこともできます。詳細については,バッチ・ファイルを使用した複数のテストの指定を参照してください。

  3. (オプション)次のいずれかの方法で,使用するテスト・パラメータを指定します。

    注:  

    • テスト・パラメータは,[Tests]ボックスで指定するのではなく,テーブルで指定することをお勧めします。文字列または数値のパラメータ値のみを指定できる最初の方法は,後方互換性のためにのみサポートされています。

    • テストに必要なすべてのテスト・パラメータの値を指定するか,パラメータの標準設定値が UFT One で定義されていることを確認してください。

    • Application Automation Tools プラグイン・バージョン 7.6 以降:テーブルで,Password タイプの GUI テスト・パラメータを定義できます。テスト実行結果で Password パラメータの値を暗号化する方法については,「テスト実行結果のパスワードのエンコード」を参照してください。

  4. (オプション)次の内容を設定します。

    Results directory テスト結果を保存する場所を指定します。結果ファイルには,ディレクトリ内の既存のテスト結果が上書きされないように,名前が付けられます。
    UFT One parallel running mode

    複数の環境でテストを実行する場合に選択します。

    詳細については,複数の環境でのテストの並列実行を参照してください。

    Timeout

    タイムアウトを秒単位で示します。この時間が経過すると,ジョブは失敗します。

    テストが失敗して他のテストを実行できなかった場合でも,このビルド・ステップで完了したすべてのテストの UFT One 実行結果を Jenkins でロードするために,タイムアウトの設定が必要になります。

    Run Mode

    テストの UFT One 実行モードを定義します。

    1. UFT One-specific settings]を選択します。
    2. Run Mode]ドロップダウン・リストから,[Fast]または[Normal]を選択します。

    詳細については, [テスト実行]表示枠([オプション]ダイアログ・ボックス>[GUI テスト]タブ)を参照してください。

    失敗シナリオの設定

    テストまたはテスト実行内のテストが失敗した場合に UFT One が実行するアクションを設定します。

    詳細については,テスト実行の失敗シナリオの設定を参照してください。

    Output encoding

    (プラグイン・バージョン 7.4 以降)

    Jenkins コンソールの出力テキストに使用するエンコーディング文字セットを選択します。標準設定の値は UTF-8 です。

    注意: 並列テスト実行と失敗シナリオを組み合わせて設定することはお勧めしません。組み合わせて設定することで,UFT One が予期しない動作をする可能性があります。

  5. Apply]をクリックして変更を保存し,ビルド・ステップの追加を続けます。ビルド・ステップの追加が完了したら,[Save]をクリックします。
  6. ビルド後のアクションを追加して,UFT One テスト結果の設定を定義します。

    フリースタイル・プロジェクトの場合は,[Post-build Actions]セクションで,[Add post-build action]をクリックし,[Publish Micro Focus test results]を選択します。

    注: パイプラインの場合,[Pipeline Syntax]ページで[Sample Step]ドロップダウンから[publishMicroFocusTestResults]を選択し,スクリプトを生成して,そのスクリプトをパイプライン・スクリプト・ボックスにコピーします。

    次のいずれかのアーカイブ・オプションを選択します。

    Archive test reports for failed tests 失敗したテストのテスト結果レポートのみを保存します。
    Always archive test reports 常にテスト結果レポートを保存します。
    Do not archive test reports 常にテスト結果を保存しません。
  7. (パイプラインの場合)実行の途中でパイプラインを中止した場合に,実行されたすべてのテストの結果を表示するには,パイプライン・スクリプト・ボックスでスクリプトに try-finally ブロックを挿入します。次の例を参照してください。

    例:

    try {
      runFromFSBuilder fsTests: 
      '''C:\\JenkinsTestsFromFS\\TestToFail''',
      uftSettingsModel:[
        cleanupTest: '', fsTestType: 'Rerun the entire set of tests',
    numberOfReruns: '3', onCheckFailedTest: 'true'
        ]
      } finally {
      publishMicroFocusTestResults 'ALWAYS_ARCHIVE_TEST_REPORT'
    }
  8. 標準の Jenkins ジョブの場合と同じように,ジョブを実行したり,スケジュールを設定したりします。

    テストが完了したら,テスト実行結果の確認に進みます。

先頭に戻る

バッチ・ファイルを使用した複数のテストの指定

バッチ・ファイルでテストとパラメータを指定して,複数のテストをトリガするように 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>

バッチ・テスト実行でテスト間でパラメータを渡す

Application Automation Tools プラグイン・バージョン 7.6 以降でサポート

あるテストの出力パラメータを別のテストの入力パラメータとして渡すことができます。これを行うために,次の手順を実行します。

  1. UFT Oneで,各テストで後続のテストの入力として使用する出力パラメータを定義します。

  2. バッチ・ファイルの各 <Parameter> 要素で,値を空のままにして,値を使用する出力パラメータの名前を指定する source 属性を含めることができます。

    例:

    <Test name="test2" path="c:\tests\GUITest1">
    <Parameter name="inputParam1" value="" type="string" source="outParam1"/>
    …
    </Test>

注:  

  • バッチ・テスト実行で最初のテストを指定する場合は,source 属性を空のままにします。

  • テスト・バッチに 3 つのテスト(A,B,C)がある場合,パラメータを A から C に直接渡すことはできません。

ビルド設定の続行

バッチ・ファイルの定義が完了したら,メインのビルド設定手順に戻ります。

先頭に戻る

テスト実行結果からのパラメータの詳細の除外

Application Automation Tools プラグイン・バージョン 7.6 以降でサポート

標準設定では,各テストの実行後に,[Console Output]ページと[Test Result]ページにテスト・パラメータの詳細が表示されます。機密データが公開されないようにするため,ジョブ・レベルのパラメータを定義してビルド・プロセスを制御し,テストの実行結果からパラメータ・データを除外することができます。

次の手順を実行します。

  1. ビルド・ジョブ設定の[General]領域で,[This project is parameterized]を選択し,[Add Parameter]ドロップダウン・ボタンを使用して次のパラメータを追加します。

    • Name: UFT_PRINT_TEST_PARAMS

    • Type: Boolean

    • Values:true(パラメータを含める),false(パラメータを除外する)

  2. 定義したパラメータでビルドを起動します。詳細については,関連する Jenkins のドキュメントを参照してください。

先頭に戻る

複数の環境でのテストの並列実行

複数の環境で一連の Web テストまたはモバイル・テストを並列で実行するように Jenkins を設定します。

設定すると,各テストは順番に実行されます。各テストの実行中に,複数の環境が同時にテストされます。

次の手順を実行します。

  1. Execute Micro Focus tests from file system ビルド・ステップで,[UFT One parallel running mode]オプションを選択します。

  2. Tests]ボックスに,完全な絶対パスを使用してテストを入力するか,1 つ以上のテストを含むフォルダまたは MTB を入力します。

    複数のエントリを指定するには,フィールドの右側にある下矢印をクリックし,各テスト・パスを別々の行に入力します。それらのパスがローカル・ネットワークのすべてのマシンからアクセスできることを確認します。

    別の方法として,テストとパラメータのリストを含むバッチ・ファイルを示します。詳細については,バッチ・ファイルを使用した複数のテストの指定を参照してください。

  3. テストの実行セットごとに 1 つ以上の環境を定義します。

    1. Mobile]または[Web]を選択します。

    2. Environment wizard]をクリックして,ブラウザまたはデバイスを選択します。

    3. + Environment]をクリックして,実行セットの新しい環境を追加します。UFT One は,最大 4 つの並列テスト実行をサポートします。

      5 つ以上の環境を構成する場合,後続の各環境はキューで待機します。

    4. + EXECUTION SET]をクリックして,定義済みの独自の環境で,実行する新しいテストのセットを追加します。

    注: モバイル・デバイスでテストを実行するには,Digital Lab(UFT Mobile) 接続を設定する必要があります。詳細については,モバイル・テストと Jenkins の統合を参照してください。

ビルド設定の続行

並列テスト実行の定義が完了したら,メインのビルド設定手順に戻ります。

先頭に戻る

テスト実行の失敗シナリオの設定

テストまたはテスト実行内の特定のテストが失敗した場合に UFT One が実行するアクションを設定します。

次の手順を実行します。

  1. Execute Micro Focus tests from file system ビルド・ステップで,[UFT One-Specific Settings]ボタンをクリックします。

  2. On failure]オプションを選択してから,次のいずれかを選択します。

    オプション 説明 Application Automation Tools プラグイン・バージョン 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 失敗したすべてのテストを再実行するには,このオプションを選択します。 このオプションはありません。
  3. 1 つまたは複数のテストの再実行を処理するノードを選択します。

    注: ここで選択するノードは,ビルド・ジョブ設定の[General]セクションで設定したノードと一致させてください。これにより,このジョブで実行されるテストで,確実に正確なテスト・パスを使用できます。

    詳細については,Jenkins を使用したローカルの UFT One テストのトリガを参照してください。

  4. Reruns]フィールドで,1 つまたは複数のテストを再実行する回数を定義します。

  5. Cleanup test]フィールドで,テスト実行全体が終了し,失敗が発生した後に,クリーンアップとして実行するオプションのテストを定義します。定義されたテストは,新しいテストが再実行される前に実行され,テスト実行のための正しい環境を作成します。

特定のテストの失敗シナリオの設定

失敗した特定のテストのみを再実行するオプションを選択した場合は,次のように再実行するようにテストを設定します。

  1. テストのリストには,このビルド・ジョブに含まれるすべてのテストが表示されます。失敗した場合に再実行する各テストのチェックボックスを選択します。

  2. 次のいずれかを実行します。

    テストごとに失敗シナリオを定義する

    選択したテストごとに,テストを再実行する回数と,再実行する前に実行するクリーンアップ・テストを定義します。

    選択したすべてのテストに値をコピーする

    定義済みのメインの失敗シナリオを,以下で選択したすべてのテストにコピーします。

    メインの[Reruns]フィールドの横にある[Copy/Pasteボタンをクリックします。

    テストごとの定義をすべてクリアするには,[Clear]をクリックします。

ビルド設定の続行

失敗シナリオの定義が完了したら,メインのビルド設定手順に戻ります。

先頭に戻る

指定した Windows ユーザとしてテストを実行

Application Automation Tools プラグイン・バージョン 7.7 以降,UFT One バージョン 2023 以降でサポート

注: 指定した Windows ユーザとしてテストを正常に実行するには,コマンド・ラインから Jenkins エージェントを起動する必要があります。

UFT One テストは,現在ログインしている Windows ユーザとは異なる Windows ユーザとして実行できます。これを行うために,次の手順を実行します。

指定した Windows ユーザとしてテストを実行するには

  1. ビルド・ジョブ設定の[General]領域で,[This project is parameterized]を選択し,[Add Parameter]ドロップダウン・ボタンを使用して次のパラメータを追加します。

    パラメータ 説明
    UFT_RUN_AS_USER_NAME

    Jenkins ジョブを実行するためのユーザ名。

    注:認証に失敗した場合は,UPN 形式(username@DNS_domain_name)で値を指定します。

    UFT_RUN_AS_USER_ENCODED_PASSWORD

    Jenkins ジョブを実行するためのエンコードされたパスワード。

    UFT One とともにインストールされるパスワード・エンコーダ・ツールでパスワードをエンコードします。

    UFT_RUN_AS_USER_PASSWORD

    Jenkins ジョブを実行するための実際のパスワード。

    UFT_RUN_AS_USER_ENCODED_PASSWORD とこのパラメータのどちらかを追加します。

  2. 定義したパラメータでビルドを起動します。

先頭に戻る

テスト実行結果の確認

UFT One テスト結果を表示するには,次の手順を実行します。

  1. 左側のツールバーの[UFT Report]アイコンをクリックします。UFT レポート・ページが開き,テスト実行(テスト名,タイムスタンプ,ステータス,レポートへのリンク)の一覧を表示する表が表示されます。

    注: Jenkins の設定ページで,各テスト実行のタイムスタンプ形式を指定できます([Manage Jenkins]>[Configure System],[Run Result (UFT Report) timestamp format string]セクション)。

  2. リンクをクリックして,目的のレポートを開きます。

    • HTML レポート:ブラウザは HTML レポートを開きます。

      複数のテストを並列で実行した場合,レポートには実行されたすべてのテストの結果が含まれます。詳細については,パラレル・ランナーの応答と実行結果の例を参照してください。

    • 実行結果レポート:zip ファイルのダウンロードが開始します。zip ファイルの中身を展開します。展開した zip ファイルには,Run Results Viewer で表示できる結果ファイルが含まれています。

注:  

  • このビルド・ジョブのログには,PerScenarioTimeoutFileSystemTestRunner など,多数のタイムアウト・メッセージが表示されます。

    PerScenarioTimeout は,LoadRunner Professional テストにのみ関連するため,無視できます。

  • ビルド後のステップを追加して,JUnit テスト結果レポートをパブリッシュすることもできます。これにより,UFT One .xml 結果ファイルが JUnit レポートに変換されます。

  • テスト実行の途中でジョブを中止すると,テスト・レポートには,ジョブの停止までに実行されたすべてのテストの結果が表示されます。

  • Application Automation Tools プラグイン・バージョン 7.6 以前:失敗したすべてのテストが再実行後に成功した場合でも,ビルド・ジョブは[failed]としてマークされます。

先頭に戻る

ジョブが中止されたときのライセンスの解放

テスト実行が完了する前にジョブを中止した場合,UFT One ライセンスが使用中のままになることがあります。

ライセンスが解放されたかどうかを確認するには,次の手順を実行します。

  1. AutoPass License Server で,[使用状況レポート]メニューをクリックします。

  2. UFT Enterprise Concurrent User]で,[履歴]タブをクリックします。

  3. ページの下部にある表で,[クライアント情報]カラムを確認し,ライセンスに関するレコードを探します。

    • そこにライセンス・レコードがあれば,ライセンスは正常に解放されています。

    • ライセンスが[使用中]タブにある場合,ライセンスは使用中のままです。

実行が中止されたときにライセンスを解放するには,次の手順を実行します。

Application Automation Tools プラグイン・バージョン 7.6 以前:

ジョブが中止されたときに,UFT One ライセンスがすぐにライセンス・プールに戻されなかった場合,約 10 分後に自動的に解放されます。

Application Automation Tools プラグイン・バージョン 7.7 以降:

Jenkins サーバから十分な時間が提供されていれば,UFT One はジョブが中止されたときにライセンスを解放します。

待機時間は,SoftKillWaitSeconds プロパティ(標準設定:5s)で制御します。Jenkins ジョブが終了した後も UFT One ライセンスがまだ使用中である場合は,次の手順を実行します。

jenkins.xml ファイルで,-jar の前に -DSoftKillWaitSeconds=value ステートメントを追加します。プロパティを 5 秒より大きい値に設定します。

例:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP= -DSoftKillWaitSeconds=30 -jar "C:\Program Files\Jenkins\jenkins.war" --httpPort=8080 --webroot="%LocalAppData%\Jenkins\war"</arguments>

先頭に戻る

その他の参照項目: