Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022
テスト タスクを含むパイプラインに対してクエリを実行することで、テストの概要傾向レポートを作成できます。 たとえば、次のレポートには、24 日間の列ごとの失敗したテスト実行の数と、テスト合格率の傾向を示す折れ線グラフが表示されます。 パイプラインにテストを追加する方法については、この記事で後述する 「テスト タスク リソース 」を参照してください。
この記事では、次のレポートを生成するためのサンプル クエリを提供します。
- ビルド ワークフローのテスト概要の傾向
- リリース ワークフローのテストの概要傾向
- 特定のブランチの概要傾向をテストする
- 特定のテスト ファイルのテスト概要の傾向
- 特定のテスト所有者のテストの概要傾向
注釈
この記事のサンプル クエリには、Analytics OData フィードの v3.0-preview 以降が必要です。 フィードバックを共有します。
| カテゴリ | Requirements |
|---|---|
| アクセス レベル |
-
プロジェクトメンバー。 - 少なくともベーシックアクセス。 |
| アクセス許可 | 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。 サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。 |
注釈
この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BIに関する基本的な理解があることを前提としています。
サンプル クエリ
TestRuns エンティティ セットの次のクエリを使用して、異なる似たパイプライン テストの概要傾向レポートを作成します。 このエンティティ セットは、パイプライン定義内にテスト タスクを含める場合にのみ使用できます。
注釈
フィルター処理またはレポートに使用できるプロパティについては、 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/TestRuns?
$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedOn/Date ge {startdate} "
&"and Workflow eq 'Build' "
&") "
&"/groupby( "
&"(CompletedOn/Date), "
&"aggregate( "
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
&"ResultFailCount with sum as ResultFailCount "
&")) "
&"/compute( "
&"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
,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/TestRuns?
$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedOn/Date ge {startdate} "
&"and Workflow eq 'Release' "
&") "
&"/groupby( "
&"(CompletedOn/Date), "
&"aggregate( "
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
&"ResultFailCount with sum as ResultFailCount "
&")) "
&"/compute( "
&"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
ブランチでフィルターされたテストのサマリートレンド
特定のブランチのパイプラインのテスト概要傾向を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。
-
BranchをBranch.BranchNameに展開します。 - Power BI ビジュアライゼーション スライサーを選択し、フィールド
Branch.BranchNameをスライサーの Field に追加します。 - 結果の概要を表示する必要があるスライサーからブランチ名を選択します。
スライサーの使用方法の詳細については、「Power BI の
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestRuns?
$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedOn/Date ge {startdate} "
&"and Workflow eq 'Build' "
&") "
&"/groupby((Branch/BranchName, CompletedOn/Date), "
&"aggregate( "
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
&"ResultFailCount with sum as ResultFailCount "
&")) "
&"/compute( "
&"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
テスト ファイルでフィルター処理されたテストの概要傾向
特定のテスト ファイルのパイプラインのテスト概要傾向を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
-
TestをTest.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/TestRuns?
$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedOn/Date ge {startdate} "
&"and Workflow eq 'Build' "
&") "
&"/groupby((Test/ContainerName, Date/Date), "
&"aggregate( "
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
&"ResultFailCount with sum as ResultFailCount "
&")) "
&"/compute( "
&"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
テスト所有者によってフィルター処理されたテストの概要傾向
特定のテスト所有者が所有するテストのパイプラインのテスト概要傾向を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
-
TestをTest.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/TestRuns?
$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"and CompletedOn/Date ge {startdate} "
&"and Workflow eq 'Build' "
&") "
&"/groupby((Test/TestOwner, Date/Date), "
&"aggregate( "
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount, "
&"ResultFailCount with sum as ResultFailCount "
&")) "
&"/compute( "
&"iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
,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。 例:2023-01-01Zは 2023 年 1 月 1 日を表します。 引用符または角かっこで囲む必要はありません。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ部分
説明
$apply=filter(
句 filter() を開始します。
Pipeline/PipelineName eq '{pipelineName}'
指定したパイプラインのテスト実行を返します。
and CompletedOn/Date ge {startdate}
指定した日付以降に実行されたテストを返します。
and Workflow eq 'Build'
Build ワークフローを使用してパイプラインのテスト実行を返します。
)
節 filter() クローズします。
/groupby(
句 groupby() を開始します。
(CompletedOn/Date),
テスト実行の完了日でグループ化します。
aggregate(
句 aggregate を開始します。 フィルター条件に一致するすべてのテスト実行について、カウントを合計します。
ResultCount with sum as ResultCount,
テスト実行の合計数を ResultCountとしてカウントします。
ResultPassCount with sum as ResultPassCount,
成功したテスト実行の合計数を ResultPassCountとしてカウントします。
ResultNotExecutedCount with sum as ResultNotExecutedCount,
実行されていないテスト実行の合計数を ResultNotExecutedCountとしてカウントします。
ResultNotImpactedCount with sum as ResultNotImpactedCount
影響を受けなかったテスト実行の合計数を ResultNotImpactedCountとしてカウントします。
ResultFailCount with sum as ResultFailCount
失敗したテスト実行の合計数を ResultFailCountとしてカウントします。
))
aggregate()句とgroupby()句を閉じます。
/compute(
句 compute() を開始します。
iif(ResultCount gt ResultNotExecutedCount, ((ResultPassCount add ResultNotImpactedCount) div cast(ResultCount sub ResultNotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate
すべての日について、 PassRateを計算します。
)
節 compute() クローズします。
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [クエリ設定] ペインから新しい名前を入力します。
Power BIの [CompletedOn] 列を展開する
CompletedOn列を展開します。 列を展開すると、レコードが特定のフィールドにフラット化されます。 その方法については、「Transform Analytics データを参照して、Power BI レポートを生成する、列の展開を参照してください。
列のデータ型を変更する
Power Query エディターから、PassRate 列を選択します。 [変換] メニューから [データ型] を選択し、[10 進数] を選択します。
データ型の変更の詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」を参照してください。列データ型の変換。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。
折れ線グラフと積み上げ棒グラフのレポートを作成する
Power BIの Visualizations で、折れ線グラフと積み上げ縦棒グラフ を選択し、フィールドをグラフ領域にドラッグします。
X 軸に
CompletedOn.Dateを追加。 フィールドを右クリックし、日付階層ではなく Date.Date を選択します。ResultFailCountを Column y 軸に追加します。線 y 軸に
PassRateを追加。
レポートは次の図のようになります。
タスク リソースのテスト
- Visual Studio テスト タスクを使用してテストを並列実行します
- 任意のテストランナーでテストを並列実行する
- テスト影響分析 (TIA) を使用してテストを高速化する
- 不安定なテストを管理する
- UI テストの考慮事項
- Azure Load Testing
- Azure Pipelines タスク リファレンス、テスト タスク