共用方式為


失敗的測試範例報告

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 或更新版本。 我們鼓勵您使用這些查詢並提供意見反應。

類別 要求
存取層級 - 專案成員
- 至少擁有 基本 存取權限。
許可 根據預設,項目成員具有查詢分析及建立檢視的許可權。 如需有關服務與功能啟用和一般數據追蹤活動之其他必要條件的詳細資訊,請參閱 存取分析的許可權和必要條件。

注意

本文假設您已閱讀 使用 OData 查詢 的範例報表概觀,並具備 Power BI 的基本瞭解。

範例查詢

您可以使用實體集的 TestResultsDaily 下列查詢來建立不同但類似的管線失敗測試報告。 實體集合TestResultsDaily提供按測試分組的TestResult執行每日快照彙總。

注意

若要判斷篩選或報表用途的可用屬性,請參閱 Test Plans Analytics 的 元數據參考和 Azure Pipelines 的元數據參考。 您可以使用 EntityTypeNavigationPropertyBinding Path 下的任一 Property 值,或 EntitySet 下的 NavigationPropertyBinding Path 值來篩選查詢或傳回屬性。 每個 EntitySet 對應至 EntityType。 如需每個值之數據類型的詳細資訊,請檢閱針對對應 EntityType提供的元數據。

建置流程測試失敗

使用下列查詢來檢視建置工作流程管線的失敗測試

將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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, "
                &"ResultPassCount with sum as PassedCount, "
            &"ResultFailCount with sum as FailedCount, "
        &"ResultNotExecutedCount with sum as NotExecutedCount, "
    &"ResultNotImpactedCount with sum as NotImpactedCount, "
    &"ResultFlakyCount with sum as FlakyCount)) "
    &"/filter(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

發行工作流程的失敗測試

使用下列查詢來檢視發行工作流程管線中的失敗測試。

將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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, "
                &"ResultPassCount with sum as PassedCount, "
                &"ResultFailCount with sum as FailedCount, "
            &"ResultNotExecutedCount with sum as NotExecutedCount, "
                &"ResultNotImpactedCount with sum as NotImpactedCount, "
            &"ResultFlakyCount with sum as FlakyCount)) "
        &"/filter(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

依分支篩選的失敗測試

若要檢視特定分支管線的失敗測試,請使用下列查詢。 若要建立報告,請執行下列額外步驟,以及本文稍後所指定的內容。

  • 展開 BranchBranch.BranchName
  • 選取 Power BI 切片器,並將欄位Branch.BranchName新增至切片器的欄位
  • 從篩選器中選取要查看結果摘要的分支名稱。

如需使用交叉分析篩選器的詳細資訊,請參閱 Power BI 中的交叉分析篩選器。

將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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, "
                &"ResultPassCount with sum as PassedCount, "
            &"ResultFailCount with sum as FailedCount, "
                &"ResultNotExecutedCount with sum as NotExecutedCount, "
            &"ResultNotImpactedCount with sum as NotImpactedCount, "
        &"ResultFlakyCount with sum as FlakyCount)) "
    &"/filter(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

由測試檔案篩選的失敗測試

若要檢視管線和特定測試檔案的失敗測試,請使用下列查詢。 若要建立報告,請執行下列額外步驟,以及本文稍後所定義的內容。

  • 展開 TestTest.ContainerName
  • 選取 Power BI 視覺效果篩選器,並將欄位Test.ContainerName新增至篩選器的欄位
  • 從切片器中選取你需要查看結果摘要的容器名稱。

將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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, Test/ContainerName), "
        &"aggregate( "
            &"ResultCount with sum as TotalCount, "
                &"ResultPassCount with sum as PassedCount, "
                &"ResultFailCount with sum as FailedCount, "
            &"ResultNotExecutedCount with sum as NotExecutedCount, "
                &"ResultNotImpactedCount with sum as NotImpactedCount, "
            &"ResultFlakyCount with sum as FlakyCount)) "
        &"/filter(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

測試擁有者篩選的失敗測試

若要檢視某測試擁有者所擁有的測試管線中的失敗測試,請使用下列查詢。 若要建立報告,請執行下列額外步驟,以及本文稍後所定義的內容。

  • 展開 TestTest.TestOwner
  • 選取 Power BI 視覺效果的篩選器,將欄位 Test.TestOwner 新增到篩選器的欄位Test.TestOwner當中。
  • 從篩選器中選取測試擁有者,以查看結果摘要。

將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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, Test/TestOwner), "
        &"aggregate( "
            &"ResultCount with sum as TotalCount, "
                &"ResultPassCount with sum as PassedCount, "
                &"ResultFailCount with sum as FailedCount, "
            &"ResultNotExecutedCount with sum as NotExecutedCount, "
                &"ResultNotImpactedCount with sum as NotImpactedCount, "
            &"ResultFlakyCount with sum as FlakyCount)) "
        &"/filter(FailedCount gt 0) "
    &"/compute( "
    &"iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, 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。 範例: 2021-09-01Z 代表 2021 年 9 月 1 日。 請勿以引號或括弧括住,並針對月份和日期使用兩位數。

查詢明細

下表描述查詢的每個部分。

查詢部分

說明


$apply=filter(

Start filter() 子句。

Pipeline/PipelineName eq '{pipelineName}'

返回指定管線的測試執行。

and CompletedOn/Date ge {startdate}

傳回指定日期或之後執行的測試。

and Workflow eq 'Build'

傳回 Build 工作流程管線的測試執行。

)

Close filter() 子句。

/groupby(

開始 groupby() 子句。

(TestSK, Test/TestName),

依測試名稱分組

aggregate(

開始 aggregate 子句以加總符合篩選準則的測試回合。

ResultCount with sum as TotalCount,

將測試回合總數計算為 TotalCount

ResultPassCount with sum as PassedCount,

將透過的測試回合總數計算為 PassedCount

ResultFailCount with sum as FailedCount,

將失敗的測試回合總數計算為 FailedCount

ResultNotExecutedCount with sum as NotExecutedCount

將未執行的測試回合總數計算為 NotExecutedCount

ResultNotImpactedCount with sum as NotImpactedCount,

將未受影響的測試回合總數計算為 NotImpactedCount

ResultFlakyCount with sum as FlakyCount

將不穩定測試回合的總數計數為 FlakyCount

))

關閉 aggregate()groupby() 子句。

/compute(

Start compute() 子句。

iif(TotalCount gt NotExecutedCount, ((PassedCount add NotImpactedCount) div cast(TotalCount sub NotExecutedCount, Edm.Decimal)) mul 100, 0) as PassRate

針對所有測試,計算 PassRate

)

Close compute() 子句。

(選擇性)重新命名查詢

您可以將預設查詢標籤 Query1 重新命名為更有意義的專案。 只要從 [ 查詢設定 ] 窗格輸入新名稱即可。

Power BI 查詢功能表選項、重新命名查詢的螢幕快照。

展開 Power BI 中「Test」欄位

展開 Test 欄以顯示展開的實體 Test.TestName。 展開欄位會將記錄扁平化為特定欄位。 若要瞭解如何,請參閱 轉換分析數據以產生 Power BI 報表、展開數據行

變更數據行數據類型

  1. 從 Power Query 編輯器,選取 TotalCountPassedCountFailedCountNotExecutedCountNotImpactedCountFlakyCount 數據行;從 [轉換] 功能選取 [數據類型],然後選擇 [整數]。

  2. 選取PassRate欄; 從轉換選單選取資料類型,然後選擇十進位數

如需變更數據類型的詳細資訊,請參閱 轉換分析數據以產生Power BI報表、轉換資料行數據類型

關閉查詢並套用您的變更

完成所有數據轉換之後,請從 [常用] 功能表選擇 [關閉及套用],以儲存查詢並返回 Power BI 中的 [報表] 索引標籤。

Power Query 編輯器 [關閉並套用] 選項的螢幕快照。

建立表格報表

  1. 在 Power BI 的[視覺效果] 下,選擇[表格],並將欄位拖放到[欄]區域。

    「失敗測試」報表的視覺化欄位選擇螢幕快照。

  2. 按照列出的順序,將下列欄位新增至 區段。

    • Test.TestName
    • TotalCount
    • PassedCount
    • FailedCount
    • NotImpactedCount
    • NotExecutedCount
    • FlakyCount
    • PassRate

您的報表看起來應該類似下圖。

範例失敗測試數據表報告的螢幕快照。

測試工作資源