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
ブランチでフィルターされたテストの時間
特定のブランチのパイプライン テストのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で指定されているものと共に、次の追加手順を実行します。
-
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/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 ビジュアライゼーション スライサーを選択し、フィールド
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
テスト所有者によってフィルター処理されたテスト期間
特定のテスト所有者が所有するテストのパイプラインのテスト期間を表示するには、次のクエリを使用します。 レポートを作成するには、この記事の後半で定義されているものと共に、次の追加手順を実行します。
-
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/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の [テスト] 列を展開する
Test列を展開して、展開されたエンティティのTest.TestNameを表示します。 列を展開すると、レコードが特定のフィールドにフラット化されます。 詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」、列の展開に関するページを参照してください。
列のデータ型を変更する
Power Query エディターで、
TotalCount列を選択します。 [変換] メニューから [データ型] を選択し、[整数] を選択します。TotalDuration列とAvgDuration列を選択します。 [変換] メニューから [データ型] を選択し、[10 進数] を選択します。
データ型の変更の詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」を参照してください。列データ型の変換。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。
テーブル レポートを作成する
Power BIの Visualizations で、Table を選択します。 フィールドを [列] 領域にドラッグ アンド ドロップします。
Columns セクションに次のフィールドを一覧表示されている順序で追加します。
Test.TestNameTotalCountAvgDuration
[
AvgDuration] フィールドを右クリックし、[合計] ではなく [ 平均 ] を選択 します。
レポートは次の図のようになります。