外部テストとの統合

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

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

このトピックの内容:

手順の概要

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

  1. テスト結果を含む XML ファイルを準備します。XML ファイルは、手動で準備するか、テスト・ツールまたはフレームワークで生成することができます。
  2. バージョン 6.4 以降のプラグインをインストールします。「Application Automation Tools」を参照してください。
  3. プラグインの設定をテストする新しい Jenkins ジョブを作成します。プラグインの設定をテストするジョブの作成を参照してください。

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

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

  • テストの実行時間などの継続時間情報を OpenText Application Quality Management にアップロードする場合は、OpenText Application Quality Management で文字列型のユーザ定義フィールドを作成します。これは、システム・フィールド[継続時間]が整数値以外を許容しないためです。XML ファイルから継続時間情報(通常は浮動小数点数)を記録するためにこのフィールドを使用することはできません。
  • プラグインは、エンティティの日付型システム・フィールドの設定をサポートしていません。たとえば、テストの「作成日」、テスト・インスタンスの「実行日」などです。このような日付フィールドの値は、テスト結果がアップロードされるときに自動的に設定されます。

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

    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 への接続の設定」手順で設定したサーバの 1 つを選択します。

    https://github.com/jenkinsci/hpe-application-automation-tools-plugin/blob/latest/doc/ALM_Integration.md を参照してください。

    ALM Credentials

    ALM 資格情報のペアを選択します。資格情報がない場合は、[Add]をクリックして資格情報を追加します。

    Domain ドメイン名を入力します。
    Project プロジェクト名を入力します。
    Client Type

    サーバへのアクセスに使用できるクライアント・タイプを入力します。

    サーバで API 制限が有効になっている場合にのみ必要です。サーバに API 制限がない場合は、このフィールドをスキップしてください。

    Test Folder

    アップロードされたテストを格納するテスト・フォルダのパスを入力します。ルートのテスト・フォルダ(Subject)をパスに含めないでください。

    パス内のフォルダが OpenText Application Quality Management に存在しない場合、プラグインはパス構造に基づいてこれらのフォルダを作成し、パスの下にエンティティを作成します。

    たとえば、テスト・フォルダが sampletestfolder\subfolder で、sampletestfoldersubfolder のどちらも存在しない場合、プラグインは Subject の下に sampletestfolder フォルダを作成し、sampletestfolder の下に subfolder フォルダを作成し、subfolder の下に新しいテストを作成します。

    テスト・フォルダは Jenkins 環境変数をサポートします。

    Test Set Folder

    テスト・セット・フォルダのパスを入力します。パスにルートのテスト・セット・フォルダを含めないでください。

    プラグインは、XML ファイルで定義されたテスト・セット名でテスト・セット・ツリー全体を検索します。何も見つからない場合は、パスの下に新しいテスト・セットが作成されます。

    パス内のフォルダが存在しない場合、プラグインはパス構造に基づいてこれらのフォルダを作成します。

    テスト・セット・フォルダは Jenkins 環境変数をサポートします。

    Testing Result File

    テスト結果の XML ファイルのパスを、**/*.xml のような Ant glob 構文で指定します。レポート以外のファイルをこのパターンに含めないようにしてください。カンマで区切ることで、ファイルのパターンを複数指定できます。

    Field Mapping

    XML の要素と属性をエンティティとフィールドにマップします。

    フィールド・マッピングは、Jenkins 環境変数の使用をサポートします。

    詳細については、フィールド・マッピングの設定方法を参照してください。

    Create new test if no match 一致する結果が見つからない場合に OpenText Application Quality Management でテストを作成するかどうかを指定します。
    Run Status Mapping

    テスト・ステータス値を実行ステータス値にマップします。

    前提条件:XML の要素または属性をステータス・フィールドにマップする必要があります。

    実行なし成功失敗ブロック済み未完了などのシステム実行ステータスとユーザ定義のステータスの両方をマッピングできます。

    実行ステータスのマッピングのサンプルについては、実行ステータスのマッピングのサンプルを参照してください。

    • XML ファイルのステータス値がステータス値と同じである場合、実行ステータスのマッピングを設定する必要はありません。

    • 関連がなくなった場合、マッピングを削除する必要はありません。

    • テスト結果を正常にアップロードできることを確認するには、考えられるすべてのステータス・マッピングをリストアップすることをお勧めします。たとえば、次のマッピングは共存できます。これらのマッピングのうち、少なくとも 1 つが有効であれば、テスト結果はアップロードできます。

      Success: "Passed"
      True: "Passed" 1: "Passed"

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

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

  • root:テスト・セット、テスト、または実行のルート・ノード・パス。
  • プロジェクトのテスト・セット、テスト、および実行のすべての必須フィールド

    キーはエンティティのフィールドを表します。キーの値は、フィールドにアップロードされる 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

サンプル

先頭に戻る

ジョブの実行

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

先頭に戻る

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

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

先頭に戻る

結果のレビュー

  1. Jenkins ジョブを開きます。[Build History]セクションで、ビルド ID をクリックします。
  2. ビルドの詳細ページで、[Console Output]をクリックして、テスト結果のアップロードのログを表示します。

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

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

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

先頭に戻る

参照情報: