測試持續時間範例報告

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022

測試時長報告,類似下圖所示,提供測試執行次數及特定測試在管線運行中平均執行時間的洞見。

測試持續時間數據表報告的螢幕快照。

使用本文中提供的查詢來產生下列報告:

  • 建置工作流程的測試持續時間
  • 發行工作流程的測試持續時間
  • 特定分支的測試持續時間
  • 特定測試檔案的測試持續時間
  • 特定測試擁有者的測試持續時間

注意

本文中的範例查詢需要 Analytics OData feed 的 v3.0 預覽版或更新版本。 分享你的 回饋。

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

注意

本文假設你已閱讀使用 OData 查詢的範例報告概述,並對 Power BI 有基本了解。

範例查詢

請使用以下 TestResultsDaily 實體集查詢,建立各種相似的測試時長報告。 實體集合 TestResultsDaily 提供依測試分組的 TestResult 執行每日快照匯總。

注意

欲查找可用於篩選或報告的屬性,請參閱 測試計畫分析的中繼資料參考 和 Azure Pipelines 的中繼資料參考。 你可以使用任何定義在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

發行工作流程的測試持續時間

使用下列查詢來檢視具有 發行 工作流程之管線的測試持續時間報告。

將以下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 中的 Slicers。

將以下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 日。 請勿以引號或括弧括住,並針對月份和日期使用兩位數。

查詢細分

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

查詢部分

說明


$apply=filter(

Start filter() 子句。

Pipeline/PipelineName eq '{pipelineName}'

傳回具名管線的測試回合。

And Date/Date ge {startdate}

返回在指定日期或之後的測試運行。

and Workflow eq 'Build'

傳回 Build 工作流程的測試回合。

)

關閉 filter() 子句。

/groupby(

Start groupby() 子句。

(TestSK, Test/TestName),

依測試名稱分組。

aggregate(

請開始 aggregate 子句以加總符合篩選準則的不同測試執行結果。

ResultCount with sum as TotalCount,

將測試回合總數計算為 TotalCount。

ResultDurationSeconds with sum as TotalDuration

將所有執行的總持續時間加總為 TotalDuration。

))

關閉 aggregate() 和 groupby() 子句。

/compute(

Start compute() 子句。

TotalDuration div TotalCount as AvgDuration

針對所有測試,計算平均持續時間,方法是將總持續時間除以執行總數。

)

關閉 compute() 子句。

可以選擇重新命名查詢

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

Power BI查詢選單選項截圖,請重新命名查詢。

展開 Power BI 中的測試欄位

展開 Test 列以顯示展開的實體 Test.TestName。 當你展開欄位時,會將記錄平展為具體的欄位。 欲了解更多資訊,請參閱 將 Analytics 資料轉換為以產生 Power BI 報告,並展開欄位。

變更數據行數據類型

  1. 在Power Query 編輯器中,選擇TotalCount欄。 從轉換選單中選擇資料型別,然後選擇整數。

  2. 選擇 TotalDuration 和 AvgDuration 欄位。 從轉換選單中選擇資料型別,然後選擇十進位數字。

欲了解更多關於變更資料型別的資訊,請參見轉換分析資料以產生Power BI報告、轉換欄位資料類型。

關閉查詢並套用您的變更

完成所有資料轉換後,從主頁選單選擇關閉並套用。 此操作會儲存查詢,並返回 Power BI 中的 Report 分頁。

Power Query 編輯器關閉並套用選項的截圖。

建立數據表報表

  1. 在Power BI中,Visualizations,選擇Table。 將欄位拖放到 欄位區。

    用於 [測試持續時間] 資料表報表的視覺化欄位選擇的螢幕快照。

  2. 請依照列出的順序,將下列欄位新增到Columns區段。

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. 右鍵選擇 AvgDuration 欄位,選擇 「平均 」而非 「總和」。

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

範例測試持續時程數據表報告的螢幕快照。