テストの概要サンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
パイプラインの実行を実行し、パイプライン定義内にテスト タスクを含めると、さまざまなテスト結果に対するテスト実行の数を示すレポートを作成できます。成功、失敗、未実行、影響なし。
次の図は、テストの概要レポートの例を示しています。
この記事で提供されているクエリを使用して、次のレポートを生成します。
- ビルド ワークフローのテストの概要
- リリース ワークフローのテストの概要
- 特定のブランチのテストの概要
- 特定のテスト ファイルのテストの概要
- 特定のテスト所有者のテストの概要
重要
Power BI の統合と Analytics サービスの OData フィードへのアクセスは、Azure DevOps Services および Azure DevOps Server 2020 以降のバージョンで一般提供されています。 この記事で提供されるサンプル クエリは、Azure DevOps Server 2020 以降のバージョンに対してのみ有効であり、v3.0-preview 以降のバージョンによって異なります。 これらのクエリを使用し、フィードバックをお寄せください。
前提条件
- アクセス: 少なくとも Basic アクセス権を持つプロジェクトのメンバーである。
- 権限: 既定では、プロジェクト メンバーは Analytics にクエリを実行し、ビューを作成する権限を持ちます。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。
Note
この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BI の基本的な理解を持っていることを前提としています。
サンプル クエリ
エンティティ セットの次のクエリを TestResultsDaily
使用して、似たパイプライン テストの概要レポートを作成できます。 エンティティ セットは TestResultsDaily
、テストごとにグループ化された実行の毎日の TestResult
スナップショット集計を提供します。
Note
フィルターまたはレポートの目的で使用可能なプロパティを決定するには、「Test Plans Analytics のメタデータ リファレンス」および「Azure Pipelines のメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
値に指定されたメタデータを確認してください。
ビルド ワークフローのテストの概要
ビルド ワークフローのパイプラインのテストの概要を表示するには、次のクエリを使用します。
次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build' "
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
{startdate}
クエリの実際の値に置き換えます{pipelineName}
。
リリース ワークフローのテストの概要
リリース ワークフローのパイプラインのテストの概要を表示するには、次のクエリを使用します。
Note
フィルターまたはレポートの目的で使用可能なプロパティを決定するには、「Test Plans Analytics のメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
値に指定されたメタデータを確認してください。
次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Release'"
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
ブランチでフィルター処理されたテストの概要
特定のブランチのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。
- 次に展開します
Branch
。Branch.BranchName
- Power BI 視覚化スライサーを選択し、スライサーのフィールドにフィールド
Branch.BranchName
を追加します - 結果の概要を表示する必要があるスライサーからブランチ名を選択します。
スライサーの使用の詳細については、「Power BI のスライサー」を参照してください。
次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Branch/BranchName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
テスト ファイルでフィルター処理されたテストの概要
特定のテスト ファイルのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
- 次に展開します
Test
。Test.ContainerName
- Power BI 視覚化スライサーを選択し、スライサーのフィールドにフィールド
Test.ContainerName
を追加します - 結果の概要を表示する必要があるスライサーからコンテナー名を選択します。
次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Test/ContainerName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
テスト所有者によってフィルター処理されたテストの概要
特定のテスト所有者が所有するテストのパイプラインのテストの概要を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
- 次に展開します
Test
。Test.TestOwner
- Power BI 視覚化スライサーを選択し、スライサーのフィールドにフィールド
Test.TestOwner
を追加します - 結果の概要を表示する必要があるスライサーからテスト所有者を選択します。
次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Test/TestOwner),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
置換文字列とクエリの内訳
次の文字列を実際の値に置き換えます。 置換に角かっこを {} 含めないでください。 たとえば、組織名が "Fabrikam" の場合は、 ではなく {Fabrikam}
を にFabrikam
置き換えます{organization}
。
{organization}
- 組織名。{project}
- チーム プロジェクト名。{pipelinename}
- パイプライン名。 例:Fabrikam hourly build pipeline
。{startdate}
- レポートを開始する日付。 日付は YYYYMMDD 形式で入力できます。 たとえば、20220815
2022 年 8 月 15 日などです。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ パーツ
説明
$apply=filter(
Start filter()
句。
Pipeline/PipelineName eq '{pipelineName}'
指定したパイプラインのテスト実行を返します。
and CompletedOn/Date ge {startdate}
指定した日付以降にテストが実行されます。
and Workflow eq 'Build'
または and Workflow eq 'Release'
返されるテストの実行は、またはRelease
ワークフローでBuild
指定されたパイプラインに対してのみ行われます。
)
Close filter()
句。
aggregate(
フィルター条件に aggregate
一致するすべてのテスト実行の句を開始します。
ResultCount with sum as ResultCount,
テスト実行の合計数を次のように ResultCount
カウントします。
ResultPassCount with sum as ResultPassCount,
成功したテスト実行の合計数を次のように ResultPassCount
カウントします。
ResultFailCount with sum as ResultFailCount
失敗したテスト実行の合計数を次のように ResultFailCount
カウントします。
ResultNotExecutedCount with sum as ResultNotExecutedCount,
未実行のテスト実行の合計数を次のように ResultNotExecutedCount
カウントします。
ResultNotImpactedCount with sum as ResultNotImpactedCount
影響を受けなかったテスト実行の合計数を次のように ResultNotImpactedCount
カウントします。
)
句を aggregate()
閉じます。
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。
(省略可能)列フィールドの名前を変更する
列フィールドの名前を変更できます。 たとえば、列Pipeline.PipelineName
の名前を 、または TotalCount
Total Count
〗 にPipeline Name
変更できます。 方法については、「列フィールドの名前を変更する」を参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。
ドーナツ グラフ レポートを作成する
Power BI の [視覚化] で、ドーナツ レポートを選択します。
次のフィールドを値に指定された順序で追加します。 各フィールドを右クリックし、[合計] が選択されていることを確認します。
ResultPassCount
ResultFailCount
ResultNotExecutedCount
ResultNotImpactedCount
レポートは次の図のようになります。