テスト期間のサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
次の図に示すようなテスト期間レポートでは、テストの実行回数と、パイプラインの実行中に特定のテストが実行されるまでの平均時間に関する分析情報が提供されます。
この記事で提供されているクエリを使用して、次のレポートを生成します。
- ビルド ワークフローのテスト期間
- リリース ワークフローのテスト期間
- 特定のブランチのテスト期間
- 特定のテスト ファイルのテスト期間
- 特定のテスト所有者のテスト期間
重要
Power BI 統合 Analytics Service の OData フィードへのアクセスは 、Azure DevOps Services および Azure DevOps Server 2020 以降のバージョンで一般提供されています。 この記事で提供されるサンプル クエリは、Azure DevOps Server 2020 以降のバージョンに対してのみ有効であり、 v3.0-preview 以降のバージョンによって異なります。 これらのクエリを使用し、フィードバックをお寄せください。
前提条件
- Access:少なくとも Basic アクセス権を持つプロジェクトのメンバーである必要があります。
- Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
Note
この記事では、 OData クエリを使用したサンプル レポートの概要 Power BI の基本的な理解があることを前提としています。
サンプル クエリ
TestResultsDaily
エンティティ セットの次のクエリを使用して、異なるが類似したテスト期間レポートを作成できます。 TestResultsDaily
エンティティ セットは、テストごとにグループ化された、TestResult
実行の毎日のスナップショット集計を提供します。
Note
フィルターまたはレポートの目的で使用可能なプロパティを決定するには、 テスト プラン分析のMetadata リファレンス および Azure Pipelines の Metadata リファレンスを参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
に指定されたメタデータを確認してください。
ビルド ワークフローのテスト期間
次のクエリを使用して、 Build ワークフローを含むパイプラインのテスト期間レポートを表示します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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 クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
分岐でフィルター処理されたテスト期間
特定のブランチのパイプライン テストのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。
Branch
をBranch.BranchName
- Power BI 視覚化スライサーを選択し、スライサーの Field に
Branch.BranchName
フィールドを追加します - 結果の概要を表示する必要があるスライサーからブランチ名を選択します。
スライサーの使用の詳細については、「power BI の Slicerを参照してください。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
テスト ファイルでフィルター処理されたテスト期間
特定のテスト所有者が所有するテストのパイプラインのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
Test
をTest.ContainerName
- Power BI 視覚化スライサーを選択し、スライサーの Field に
Test.ContainerName
フィールドを追加します - 結果の概要を表示する必要があるスライサーからテスト ファイルを選択します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
テスト所有者によってフィルター処理されたテスト期間
特定のテスト所有者が所有するテストのパイプラインのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
Test
をTest.TestOwner
- Power BI 視覚化スライサーを選択し、スライサーの Field に
Test.TestOwner
フィールドを追加します - 結果の概要を表示する必要があるスライサーからテスト所有者を選択します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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" の場合は、 ではなく {Fabrikam}
を にFabrikam
置き換えます{organization}
。
{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 の [テスト] 列を展開する
Test
列を展開して、展開されたエンティティのTest.TestName
を表示します。 列を展開すると、レコードが特定のフィールドにフラット化されます。 方法については、「 Transform Analytics データを使用して Power BI レポートを生成する、列を展開するを参照してください。
列のデータ型を変更する
Power Query エディターから
TotalCount
列を選択し、Transform メニューから Data Type を選択し、次に [穴番号 を選択します。TotalDuration
列とAvgDuration
列を選択し、Transform メニューから Data Type を選択し、[Decimal Number] を選択。
データ型の変更の詳細については、「 Transform Analytics データを使用して Power BI レポートを生成する」、列データ型の変換を参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
テーブル レポートを作成する
Power BI の Visualizations で **[テーブル] を選択し、フィールドを Columns 領域にドラッグ アンド ドロップします。
Columns セクションに次のフィールドを一覧表示されている順序で追加します。
Test.TestName
TotalCount
AvgDuration
AvgDuration
を右選択し、Sum ではなく Average を選択します。
レポートは次の図のようになります。