Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022
1 つ以上のテスト スイートの実行状態をレポートできます。 この記事の情報を使用して作成するレポートは、次の図のようになります。
次の図に示すように、階層構造の組織内でテスト スイートを配置できます。 示されているように、 オーストラリア と アジアというラベルの 2 つのテスト スイートの下に、同じ名前の 3 つのテスト スイートが存在します。 この記事では、特定のテスト スイート レベルのデータを集計する方法について説明します。
注釈
この記事のサンプル クエリには、Analytics OData フィードの v3.0-preview 以降が必要です。 フィードバックを共有します。
| カテゴリ | Requirements |
|---|---|
| アクセス レベル |
-
プロジェクトメンバー。 - 少なくともベーシックアクセス。 |
| アクセス許可 | 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。 サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。 |
注釈
この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BIに関する基本的な理解があることを前提としています。
レポートで有用なデータを生成するには、チームがテスト計画を管理するために次のアクティビティを実行する必要があります。
テスト 計画、テスト スイート、およびテスト ケースを定義します。 状態を指定します。 テスト スイートを実行するには、テスト スイートが進行中の状態である必要があります。 テスト ケースを実行するには、準備完了状態である必要があります。 詳細については、「テスト 計画とテスト スイートの作成および手動テスト ケースの作成を参照してください。
手動テストを実行し、結果を確認します。 テスト ケースの各検証ステップの結果を合格または失敗としてマークします。 詳細については、「 手動テストの実行」を参照してください。
注釈
テスト 担当者は、テスト ステップが検証テスト ステップの場合、状態をマークする必要があります。 テストの全体的な結果には、マークされたすべてのテスト ステップの状態が反映されます。 そのため、テスト ステップが失敗としてマークされているか、マークされていない場合、テストの状態は失敗になります。
サンプル クエリ
集計されたテスト スイート レポートを作成するには、 TestPoints エンティティ セットに対して次のクエリを使用します。
注釈
フィルター処理またはレポートに使用できるプロパティを見つけるには、 Test Plans Analytics のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、プロパティを返したりするには、Propertyで定義されている任意のEntityType値、またはNavigationPropertyBinding Pathに一覧表示されている任意のEntitySet値を使用します。 各 EntitySet は、各プロパティのデータ型を文書化する EntityTypeにマップされます。
次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/TestPoints?"
&"$apply=filter((TestSuite/TestPlanTitle eq '{testPlanTitle}' and TestSuite/IdLevel3 ne null))"
&"/groupby("
&"(TestSuite/TitleLevel3),"
&"aggregate("
&"$count as TotalCount,"
&"cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as PassedCount,"
&"cast(LastResultOutcome eq 'Failed', Edm.Int32) with sum as FailedCount,"
&"cast(LastResultOutcome eq 'None', Edm.Int32) with sum as NotRunCount,"
&"cast(LastResultOutcome ne 'None', Edm.Int32) with sum as RunCount"
&")"
&")"
&"/compute("
&"RunCount mul 100 div TotalCount as RunPercentage,"
&"NotRunCount mul 100 div TotalCount as NotRunPercentage,"
&"iif(TotalCount gt NotRunCount, PassedCount mul 100 div RunCount,0) as PassedPercentage,"
&"iif(TotalCount gt NotRunCount, FailedCount mul 100 div RunCount,0) as FailedPercentage"
&")"
&"&$orderby=RunPercentage desc", null, [Implementation="2.0"])
in
Source
置換文字列とクエリの内訳
次の文字列を実際の値に置き換えます。 置換に波括弧 {} を含めないでください。 たとえば、組織名が "Fabrikam" の場合は、{organization}ではなく、Fabrikamを{Fabrikam}に置き換えます。
-
{organization}- 組織名。 -
{project}- チーム プロジェクト名。 プロジェクト間クエリを作成するには、/{project}を省略します。 -
{testPlanTitle}- データを返すテスト計画のタイトル。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ部分
説明
filter((TestSuite/TestPlanTitle eq '{testPlanTitle}' and TestSuite/IdLevel3 ne null))
選択したテスト計画のみのデータを返します。 また、レベル 3 以降のテスト スイートのデータも返します。 複数のプランを追加するには、 filter((TestSuite/TestPlanTitle eq '{testPlanTitle1}' or TestSuite/TestPlanTitle eq '{testPlanTitle2}' and TestSuite/IdLevel3 ne null))などの句を使用します。 テスト スイートとテスト構成に関連するその他のフィルターを適用することもできます。
/groupby((TestSuite/TitleLevel3),
グループ分けに利用するテストスイート。 テスト スイート階層のレベル 3 のすべての個別のテスト スイートのレポートが必要な場合は、このクエリ パーツを指定します。 レベル番号は 1 から 14 に変更できます。 同じ名前のテスト スイートを分離する場合は、 /groupby((TestSuite/TitleLevel3, TestSuite/IdLevel3), を使用して、同じ名前のテスト スイートが 2 つある場合でも、2 つの異なる ID があるため、レポートに 2 つの異なるエントリとして表示されるようにします。
/aggregate($count as TotalCount,
カウントを TotalCountとして、フィルター処理されたテスト ポイント全体のデータを集計します。
cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as Passed,
集計中に、実行結果が最新かつ 'Passed' であるテストポイントを 1 に型キャストし、それらを "Passed" メトリックとして合計します。
/compute(Executed mul 100 div TotalCount as ExecPct
計算されたメトリック ExecPct (実行されたテスト ポイント/合計カウント * 100) を提供します。
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [クエリ設定] ペインから新しい名前を入力します。
Power Query エディターの列を展開する
レポートを作成する前に、 TestSuite 列を展開して、レコードを特定のフィールドにフラット化します。 詳細については、Transform Analytics データを参照してPower BIレポートを生成します。
Power BIで、次の手順に従います。
完了したら、列の名前を変更できます。
展開する
TestSuite展開ボタンを選択します。
フラット化するフィールドを選択します。
テーブルには、
TestSuite.IdLevel3とTestSuite.TitleLevel3のエンティティ フィールドが含まれるようになりました。
列ヘッダーを右クリックし、 Rename... を選択します。
列のデータ型を変更する
Power Query エディターで、
(省略可能)列フィールドの名前を変更する
列フィールドの名前を変更して、わかりやすいものにすることができます。 方法については、「列フィールドの名前を変更」を参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。
テーブル レポートを作成する
- [ Visualizationsで、[ Table] を選択します。
-
TestSuite.TitleLevel3、NotRunCount、RunCount、PassedCount、そしてTotalCountを、列の下にドラッグアンドドロップします。 -
合計 を カウント の集計方法として選択します。
レポートは次の図のようになります。