次の方法で共有


テスト期間のサンプル レポート

Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022

次の図に示すようなテスト期間レポートでは、テストの実行回数と、パイプラインの実行中に特定のテストが実行されるまでにかかる平均時間に関する分析情報が提供されます。

テスト期間テーブル レポートのスクリーンショット。

この記事で提供されているクエリを使用して、次のレポートを生成します。

  • ビルド ワークフローのテスト期間
  • リリース ワークフローのテスト期間
  • 特定のブランチのテスト期間
  • 特定のテスト ファイルのテスト期間
  • 特定のテスト所有者のテスト期間

注釈

この記事のサンプル クエリには、Analytics OData フィードv3.0-preview 以降が必要です。 フィードバックを共有します。

カテゴリ Requirements
アクセス レベル - プロジェクトメンバー
- 少なくともベーシックアクセス。
アクセス許可 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。 サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。

注釈

この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BIに関する基本的な理解があることを前提としています。

サンプル クエリ

異なるが類似したテスト期間レポートを作成するには、 TestResultsDaily エンティティ セットの次のクエリを使用します。 TestResultsDaily エンティティ セットは、テストごとにグループ化された、TestResult実行の毎日のスナップショット集計を提供します。

注釈

フィルター処理またはレポートに使用できるプロパティについては、 Test Plans Analytics のMetadata リファレンスAzure PipelinesのMetadata リファレンスを参照してください。 クエリをフィルター処理したり、プロパティを返したりするには、Propertyで定義されている任意のEntityType値、またはNavigationPropertyBinding Pathに一覧表示されている任意のEntitySet値を使用します。 各 EntitySet は、各プロパティのデータ型を文書化する EntityTypeにマップされます。

ビルド ワークフローのテスト期間

次のクエリを使用して、 Build ワークフローを含むパイプラインのテスト期間レポートを表示します。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。

let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
      &"$apply=filter("
      &"Pipeline/PipelineName eq '{pipelineName}' "
      &"And Date/Date ge {startdate} "
      &"And Workflow eq 'Build'"
      &")/groupby("
      &"(TestSK, Test/TestName),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

リリース ワークフローのテスト期間

次のクエリを使用して、 Release ワークフローを含むパイプラインのテスト期間レポートを表示します。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。

let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
      &"$apply=filter("
      &"Pipeline/PipelineName eq '{pipelineName}' "
      &"And Date/Date ge {startdate}"
      &")/groupby("
      &"(TestSK, Test/TestName, Workflow),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

ブランチでフィルターされたテストの時間

特定のブランチのパイプライン テストのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。

  • BranchBranch.BranchNameに展開します。
  • Power BI ビジュアライゼーション スライサーを選択し、フィールド Branch.BranchName をスライサーの Field に追加します。
  • 結果の概要を表示する必要があるスライサーからブランチ名を選択します。

スライサーの使用方法の詳細については、「Power BI の Slicers」を参照してください。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。

let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
      &"$apply=filter("
      &"Pipeline/PipelineName eq '{pipelineName}' "
      &"And Date/Date ge {startdate} "
      &"And Workflow eq 'Build'"
      &")/groupby("
      &"(TestSK, Test/TestName, Branch/BranchName),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

テストファイルで絞り込まれたテスト時間

特定のテスト所有者が所有するテストのパイプラインのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。

  • TestTest.ContainerNameに展開します。
  • Power BI ビジュアライゼーション スライサーを選択し、フィールド Test.ContainerName をスライサーの Field に追加します。
  • 結果の概要を表示する必要があるスライサーからテスト ファイルを選択します。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。

let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
      &"$apply=filter("
      &"Pipeline/PipelineName eq '{pipelineName}' "
      &"And Date/Date ge {startdate} "
      &"And Workflow eq 'Build'"
      &")/groupby("
      &"(TestSK, Test/TestName, Test/ContainerName),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

テスト所有者によってフィルター処理されたテスト期間

特定のテスト所有者が所有するテストのパイプラインのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。

  • TestTest.TestOwnerに展開します。
  • Power BI ビジュアライゼーション スライサーを選択し、フィールド Test.TestOwner をスライサーの Field に追加します。
  • 結果の概要を表示する必要があるスライサーからテスト所有者を選択します。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。

let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
      &"$apply=filter("
      &"Pipeline/PipelineName eq '{pipelineName}' "
      &"And Date/Date ge {startdate} "
      &"And Workflow eq 'Build'"
      &")/groupby("
      &"(TestSK, Test/TestName, Test/TestOwner),"
      &"aggregate("
      &"ResultCount with sum as TotalCount, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

置換文字列とクエリの内訳

次の文字列を実際の値に置き換えます。 置換に波括弧 {} を含めないでください。 たとえば、組織名が "Fabrikam" の場合は、{organization}ではなく、Fabrikam{Fabrikam}に置き換えます。

  • {organization} - 組織名。
  • {project} - チーム プロジェクト名。
  • {pipelinename} - パイプライン名。 例: Fabrikam hourly build pipeline
  • {startdate} - レポートを開始する日付。 形式: YYYY-MM-DDZ。 例: 2021-09-01Z は 2021 年 9 月 1 日を表します。 引用符や角かっこで囲まず、月と日付の両方に2桁の数字を使用してください。

クエリの内訳

次の表では、クエリの各部分について説明します。

クエリ部分

説明


$apply=filter(

filter() を開始します。

Pipeline/PipelineName eq '{pipelineName}'

名前付きパイプラインのテスト実行を返します。

And Date/Date ge {startdate}

指定した日付以降に実行されたテストを返します。

and Workflow eq 'Build'

Build ワークフローのテスト実行を返します。

)

filter() クローズします。

/groupby(

groupby() を開始します。

(TestSK, Test/TestName),

テスト名でグループ化します。

aggregate(

aggregate 開始して、フィルター条件に一致するさまざまなテスト実行結果を合計します。

ResultCount with sum as TotalCount,

テスト実行の合計数を TotalCountとしてカウントします。

ResultDurationSeconds with sum as TotalDuration

すべての実行の合計期間を TotalDurationとして合計します。

))

aggregate()句とgroupby()句を閉じます。

/compute(

compute() を開始します。

TotalDuration div TotalCount as AvgDuration

すべてのテストについて、合計実行時間を実行の合計数で割って平均期間を計算します。

)

compute() クローズします。

(省略可能)クエリの名前を変更する

既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [クエリ設定] ペインから新しい名前を入力します。

Power BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

Power BIの [テスト] 列を展開する

Test列を展開して、展開されたエンティティのTest.TestNameを表示します。 列を展開すると、レコードが特定のフィールドにフラット化されます。 詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」、列の展開に関するページを参照してください。

列のデータ型を変更する

  1. Power Query エディターで、TotalCount 列を選択します。 [変換] メニューから [データ型] を選択し、[整数] を選択します。

  2. TotalDuration列とAvgDuration列を選択します。 [変換] メニューから [データ型] を選択し、[10 進数] を選択します。

データ型の変更の詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」を参照してください。列データ型の変換

クエリを閉じて変更を適用する

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。

Power Query エディター閉じて適用オプションのスクリーンショット.

テーブル レポートを作成する

  1. Power BIの Visualizations で、Table を選択します。 フィールドを [列] 領域にドラッグ アンド ドロップします。

    テスト期間テーブル レポートの視覚化フィールドの選択のスクリーンショット。

  2. Columns セクションに次のフィールドを一覧表示されている順序で追加します。

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. [ AvgDuration ] フィールドを右クリックし、[合計] ではなく [ 平均 ] を選択 します

レポートは次の図のようになります。

サンプル テスト期間テーブル レポートのスクリーンショット。