このページを共有

# 外部テストとの統合

ALM を Jenkins で実行される外部テストと統合するために、Micro Focus Application Automation Tools プラグインにビルド後のアクション「Upload test result to ALM using field mapping」が導入されました。このプラグインが、外部のテスト・フレームワークまたはツールのテスト・レポートを読み取ってテスト結果を ALM にアップロードし、ALM でテスト、テスト・セット、テスト・インスタンス、テスト実行を更新または作成します。

注: 以前の外部テスト統合ソリューションは、「外部テストのインポート」で説明されているように、更新されなくなりましたが、必要であれば引き続き使用できます。ただし、このトピックで紹介したソリューションを使用することをお勧めします。

このトピックの内容:

## 手順の概要

XML のテスト・レポートから ALM へのテスト結果のアップロードにビルド後のアクションを使用するには、次の手順を実行する必要があります。

1. テスト結果を含む XML ファイルを準備します。XML ファイルは、手動で準備するか、テスト・ツールまたはフレームワークで生成することができます。
2. バージョン 6.4 以降のプラグインをインストールします。https://plugins.jenkins.io/hp-application-automation-tools-plugin/ を参照してください。

3. プラグインの設定をテストする新しい Jenkins ジョブを作成します。「プラグインの設定をテストするジョブの作成」を参照してください。

   初めてプラグインを使用するときに、新しいジョブを作成することをお勧めします。運用環境に実装する前に、プラグインの設定をテストする必要があります。

4. ビルド後のアクション Upload test result to ALM using field mapping を新しい Jenkins ジョブまたは既存のジョブに追加します。「ビルド後のアクションの設定」を参照してください。

注：

- テストの実行時間などの継続時間情報を ALM にアップロードする場合は、ALM で文字列型のユーザ定義フィールドを作成します。これは、ALM のシステム・フィールド［継続時間］が整数値以外を許容しないためです。XML ファイルから継続時間情報（通常は浮動小数点数）を記録するためにこのフィールドを使用することはできません。

- プラグインは、ALM エンティティの日付型システム・フィールドの設定をサポートしていません。たとえば、テストの「作成日」、テスト・インスタンスの「実行日」などです。このような日付フィールドの値は、テスト結果がアップロードされるときに ALM によって自動的に設定されます。

  テスト結果の XML ファイルから ALM に日付情報をアップロードする場合は、日付型のユーザ定義フィールドを作成します。このフィールドは日付のみをサポートし、時刻はサポートしません。

  XML ファイル内の日付形式は yyyy-mm-dd である必要があります。

先頭に戻る

## プラグインの設定をテストするジョブの作成

ゼロから新しいジョブを作成するには、以下の手順を実行します。テスト環境でこの機能を試す場合は、この手順をお勧めします。

テストを実行する Jenkins ジョブがすでに存在する運用環境でプラグイン設定を直接使用する場合は、「ビルド後のアクションの設定」にスキップしてください。

プラグインの設定をテストするジョブを作成するには、次の手順を実行します。

1. Jenkins サーバのホーム・ページに移動します。
2. ［New Item］リンクをクリックします。
3. ジョブ名を入力します。
4. ［Build a free-style-software project］を選択して、［OK］をクリックします。

5. ［Project Configuration］セクションで、［Build］セクションまで下にスクロールします。

6. ［Add build step］ドロップダウンを展開し、Windows 以外のシステムの場合は［Execute shell］、Windows システムの場合は［Execute Windows batch command］を選択します。

   テスト結果の XML ファイルのサンプルを Jenkins ジョブ・フォルダにコピーするコマンドを記述します。

   プラグインは、Jenkins サーバとスレーブ・マシンの両方でテスト結果ファイルの検索をサポートします。XML ファイルはどちらかの場所にコピーできます。

   サンプル XML ファイルを Jenkins サーバにコピーするには、次のコマンドを実行します。

   - Windows：

     Copy code

         copy "<Path_of_copied_sample_XML>\<Report_Name>.xml" <Jenkins_Home_Directory>/jobs/<Jenkins_Job_Name>/builds/%BUILD_ID%

   - Windows 以外：

     Copy code

         cp -f <Path_of_copied_sample_XML>/<Report_Name>.xml <Jenkins_Home_Directory>/jobs/<Jenkins_Job_Name>/builds/${BUILD_ID}

   サンプル XML ファイルを Jenkins スレーブ・マシンにコピーするには、次のコマンドを実行します。

   - Windows：

     Copy code

         copy "<Path_of_copied_sample_XML>\<Report_Name>.xml" %WORKSPACE%

   - Windows 以外：

     Copy code

         cp -f <Path_of_copied_sample_XML>\<Report_Name>.xml {WORKSPACE}

先頭に戻る

## ビルド後のアクションの設定

以下の手順に従って、ビルド後のアクション Upload test result to ALM using field mapping を設定します。

ビルド後のアクションを設定するには、次の手順を実行します。

1. 「プラグインの設定をテストするジョブの作成」で作成した Jenkins ジョブ、またはテストを自動的に実行する既存の Jenkins ジョブを開きます。

2. ［Configure］をクリックします。［Post-build Actions］セクションで、［Add post-build action］ドロップダウンを展開し、［Upload test result to ALM using field mapping］を選択します。

   次のフィールドを指定します。

   フィールド | 説明
   --- | ---
   ALM Server | 「ALM への接続の設定」手順で設定した ALM サーバの 1 つを選択します。 https://github.com/jenkinsci/hpe-application-automation-tools-plugin/blob/latest/doc/ALM_Integration.md を参照してください。
   ALM Credentials | ALM 資格情報のペアを選択します。資格情報がない場合は、［Add］をクリックして資格情報を追加します。
   Domain | ドメイン名を入力します。
   Project | プロジェクト名を入力します。
   Client Type | ALM サーバへのアクセスに使用できるクライアント・タイプを入力します。 ALM サーバで API 制限が有効になっている場合にのみ必要です。ALM サーバに API 制限がない場合は、このフィールドをスキップしてください。
   Test Folder | アップロードされたテストを格納するテスト・フォルダのパスを入力します。ルートのテスト・フォルダ（Subject）をパスに含めないでください。 パス内のフォルダが ALM に存在しない場合、プラグインはパス構造に基づいてこれらのフォルダを作成し、パスの下にエンティティを作成します。 たとえば、テスト・フォルダが `sampletestfolder\subfolder` で、ALM 内に `sampletestfolder` と `subfolder` のどちらも存在しない場合、プラグインは `Subject` の下に `sampletestfolder` フォルダを作成し、`sampletestfolder` の下に `subfolder` フォルダを作成し、`subfolder` の下に新しいテストを作成します。 テスト・フォルダは Jenkins 環境変数をサポートします。
   Test Set Folder | テスト・セット・フォルダのパスを入力します。パスにルートのテスト・セット・フォルダを含めないでください。 プラグインは、XML ファイルで定義されたテスト・セット名でテスト・セット・ツリー全体を検索します。何も見つからない場合は、パスの下に新しいテスト・セットが作成されます。 パス内のフォルダが ALM に存在しない場合、プラグインはパス構造に基づいてこれらのフォルダを作成します。 テスト・セット・フォルダは Jenkins 環境変数をサポートします。
   Testing Result File | テスト結果の XML ファイルのパスを、`**/*.xml` のような Ant glob 構文で指定します。レポート以外のファイルをこのパターンに含めないようにしてください。カンマで区切ることで、ファイルのパターンを複数指定できます。
   Field Mapping | XML の要素と属性を ALM のエンティティとフィールドにマップします。 フィールド・マッピングは、Jenkins 環境変数の使用をサポートします。 詳細については、「フィールド・マッピングの設定方法」を参照してください。
   - Run Status Mapping | テスト・ステータス値を ALM 実行ステータス値にマップします。 前提条件：XML の要素または属性を ALM のステータス・フィールドにマップする必要があります。 実行なし、成功、失敗、ブロック済み、未完了などの ALM のシステム実行ステータスとユーザ定義のステータスの両方をマッピングできます。 実行ステータスのマッピングのサンプルについては、「実行ステータスのマッピングのサンプル」を参照してください。 XML ファイルのステータス値が ALM ステータス値と同じである場合、実行ステータスのマッピングを設定する必要はありません。 関連がなくなった場合、マッピングを削除する必要はありません。 テスト結果を正常にアップロードできることを確認するには、考えられるすべてのステータス・マッピングをリストアップすることをお勧めします。たとえば、次のマッピングは共存できます。これらのマッピングのうち、少なくとも 1 つが有効であれば、テスト結果はアップロードできます。
         Success:  "Passed"
         True: "Passed"
         1: "Passed"

### フィールド・マッピングの設定方法

マッピングは YAML 形式で設定されます。マッピングには、"testset"、"test"、"run" セクションをこの順序で含める必要があります。各セクションで、次のキーの値を定義する必要があります。

- root：テスト・セット、テスト、または実行のルート・ノード・パス。

- ALM プロジェクトのテスト・セット、テスト、および実行のすべての必須フィールド

  キーは ALM エンティティのフィールドを表します。キーの値は、ALM のフィールドにアップロードされる XML ファイルの要素または属性値を表します。

  値をシステム・フィールドにアップロードする場合、キーはフィールド名にする必要があります。ALM フィールドの名前は、フィールド・ラベルと必ずしも同じではありません。ラベルではなく、ALM フィールドの名前をキーとして使用する必要があります。フィールド名を確認する方法の詳細については、「ALM エンティティ・フィールドの名前を取得するための REST API」を参照してください。

  ユーザ定義フィールドに値をアップロードする場合、キーは `udf|`で始まり、その後にフィールド・ラベルが続く必要があります。たとえば、ユーザ定義フィールド "Duration" に値をアップロードする場合、キーは `udf|duration` である必要があります。

- （オプション）マップするその他の ALM フィールド

値を指定する方法

値には 2 つのタイプがあります。`x:` で始まる値と `v:` で始まる値です。

`x:` | `x:` に続く値は、XML ファイル内の要素または属性の XPath（XML パス言語）です。 絶対パス（`/`で始まる）または相対パス（XML 要素名で直接始まる）のいずれかを定義できます。 `x:.`は、XPath が前のエンティティで定義されているものとまったく同じであることを意味します。たとえば、`root:` ```"x:."` が "run" セクションで定義されており、フィールド・マッピング内で "run" セクションが "test" セクションに続く場合、実行のルートがテストのルートと同じであることを意味します。 ALM フィールドにアップロードする値が XML 要素の値である場合、`x:` に続く値は要素名である必要があります。たとえば、`x:duration` です。アップロードする値が XML 要素の属性値である場合、x: に続く値は `@＜属性名＞` である必要があります。たとえば、`x:@length` です。
`v:` | `v:` に続く値は、テスト・セット、テスト、またはテスト実行にアップロードされる固定文字列値です。たとえば、testset セクションに `name:` ```"v:2021-01-29__Build_Verification_Test"` がある場合、ALM にアップロードされるテスト・セット名は `2021-01-29__Build_Verification_Test` になります。 ALM のシステム・フィールド［タイプ］の値を指定するには、「テスト・セット、テスト、および実行のタイプ」から値を選択し、値の前に `v:` を付ける必要があります。

値が複数の XML 要素または属性の値で構成されている場合は、`|`を使用して、値のすべての部分を結合します。たとえば、`x:file|v:_|x:name` のような値になります。

テスト結果とフィールド・マッピングのサンプルについては、「テスト結果の XML のサンプル」と 「フィールド・マッピングのサンプル」を参照してください。

### ALM エンティティ・フィールドの名前を取得するための REST API

次の REST API を呼び出して、テスト・セット、テスト、および実行エンティティのフィールド名を取得します。フィールド名は、Field 要素の Name 属性の値です。

テスト・セットのフィールド名の取得 | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/test-set/fields?login-form-required=y
テストのフィールド名の取得 | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/test/fields?login-form-required=y
実行のフィールド名の取得 | http://<alm_server>:<port>/qcbin/rest/domains/<domain_name>/projects/<project_name>/customization/entities/run/fields?login-form-required=y

### テスト・セット、テスト、および実行のタイプ

テスト・セット・タイプ | hp.qc.test-set.default hp.qc.test-set.external
テスト・タイプ | ALT-SCENARIO ALT-TEST BUSINESS-PROCESS DB-TEST EXTERNAL-TEST FLOW LEANFT-TEST LR-SCENARIO MANUAL QAINSPECT-TEST QTSAP-TESTCASE QUICKTEST_TEST SERVICE-TEST SYSTEM-TEST VAPI-XP-TEST WR-AUTOMATED WR-BATCH XR-TEST
実行タイプ | custom.run.LEANFT-TEST hp.qc.run.ALT-SCENARIO hp.qc.run.ALT-TEST hp.qc.run.BUSINESS-PROCESS hp.qc.run.DB-TEST hp.qc.run.FLOW hp.qc.run.LR-SCENARIO hp.qc.run.MANUAL hp.qc.run.QAINSPECT-TEST hp.qc.run.QTSAP-TESTCASE hp.qc.run.QUICKTEST_TEST hp.qc.run.SERVICE-TEST hp.qc.run.SYSTEM-TEST hp.qc.run.VAPI-XP-TEST hp.qc.run.WR-AUTOMATED hp.qc.run.WR-BATCH hp.qc.run.XR-TEST hp.qc.run.external-test hp.sprinter.run.SPRINTER

### サンプル

テスト結果の XML のサンプル

    <?xml version='1.0' encoding='UTF-8'?>
        <result>
            <suites>
                <suite>
                    <file>Changes file</file>
                    <name>Changes Test Set 1</name>
                    <duration>2.293</duration>
                    <cases>
                        <case>
                            <duration>8.293</duration>
                            <className>ChangesManagement</className>
                            <testName>test1</testName>
                            <testVersion>4.0</testVersion>
                            <skipped>false</skipped>
                            <failedSince>0</failedSince>
                        </case>
                        <case>
                            <duration>8.293</duration>
                            <className>ChangesManagement</className>
                            <testName>List changes 2</testName>
                            <testVersion>4.0</testVersion>
                            <skipped>false</skipped>
                            <failedSince>0</failedSince>
                        </case>
                    </cases>
                </suite>
                <duration>0.576</duration>
        </result>

フィールド・マッピングのサンプル

    testset:
      root:  "x:/result/suites/suite"
      name:  "x:file|v:_|x:name"
      udf|duration:  "x:duration"
      subtype-id:  "v:hp.qc.test-set.external"
    test:
      root:  "x:cases/case"
      name:  "x:testName"
      subtype-id:  "v:EXTERNAL-TEST"
      udf|duration: "x:duration"
      udf|test version:  "x:testVersion"
    run:
      root:  "x:."
      duration: "x:duration"
      status:  "x:failedSince"

実行ステータスのマッピングのサンプル

    status:
      True: "Passed"
      False:  "Failed"
      1: "Passed"
      0: "Failed"
      Success: "Passed"
      Failure: "Failed"
      Block:  "Blocked"

先頭に戻る

## ジョブの実行

ジョブの実行やスケジュールは、標準の Jenkins ジョブの場合と同じように行います。

先頭に戻る

## アップロードが正常に完了した後

- XML ファイルで定義されたテスト・セット名が既存のテスト・セットの中にない場合は、新しいテスト・セットが作成されます。
- XML ファイルで定義されたテスト名が既存のテスト・インスタンスの中にない場合は、新しいテスト・インスタンスが作成されます。
- アップロードするテスト結果が、既存の同じテスト・セットおよびテストに関するものである場合、プラグインはテスト・インスタンスでテスト実行のみを作成します。

先頭に戻る

## 結果のレビュー

1. Jenkins ジョブを開きます。［Build History］セクションで、ビルド ID をクリックします。

2. ビルドの詳細ページで、［Console Output］をクリックして、テスト結果のアップロードのログを表示します。

   アップロード関連のログをすばやく見つけるには、ログで「Start login to ALM server」を検索します。

3. ALM にログインして、ALM 内で作成されたテスト、テスト・セット、テスト・インスタンス、およびテスト実行を表示します。

注: コンソール出力は、特にジョブが初めて失敗した場合に、プラグインの動作の詳細を把握するために重要です。問題の発見と修正に、コンソール出力が役に立ちます。

先頭に戻る

参照情報：

- 「Jenkins 統合」
- 「ALM 統合の概要」

https://admhelp.microfocus.com ALM 8942
検索結果の改善のヒント... ALM ヘルプセンター ALM ヘルプセンター ALM ヘルプ 17.0 すべてローカル・ヘルプセンターの表示オンライン・ヘルプセンターの表示戻るブラウザ履歴で元に戻る進むブラウザ履歴で前に進む検索の強調表示を解除次のトピック次のトピックに移動前のトピック前のトピックに移動現在のトピックを印刷バージョン: