測試持續時間範例報告

Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020

測試持續時間報告,類似於下圖所示的報告,提供測試執行次數的深入解析,以及管線執行期間執行特定測試所花費的平均時間。 如需將測試新增至管線的資訊,請參閱 本文稍後的<測試工作資源 >一節。

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

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

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

重要

Azure DevOps Services 和 Azure DevOps Server 2020 和更新版本的 Power BI 整合 和存取 Analytics Service 的 OData 摘要 已正式推出。 本文中提供的範例查詢僅適用於 Azure DevOps Server 2020 和更新版本,且相依於 v3.0-preview 或更新版本。 我們鼓勵您使用這些查詢並提供意見反應。

必要條件

  • 若要檢視分析數據和查詢服務,您必須是具有基本存取權或更高許可權的項目成員。 根據預設,所有專案成員都會獲得查詢分析的許可權,並定義分析檢視。
  • 若要瞭解有關服務與功能啟用和一般數據追蹤活動的其他必要條件,請參閱 存取分析的許可權和必要條件。

注意

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

範例查詢

您可以使用實體集的 TestResultsDaily 下列查詢來建立不同的但類似的測試持續時間報告。 實體 TestResultsDaily 集會提供依測試分組的 TestResult 每日執行快照集匯總。

注意

若要判斷篩選或報表用途的可用屬性,請參閱 Test Plans Analytics 的 元數據參考和 Azure Pipelines 的元數據參考。 您可以使用的 或 NavigationPropertyBinding PathEntitySet底下EntityType的任何Property值來篩選查詢或傳回屬性。 每個 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, "
                  &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
        &"/compute( "
    &"TotalDuration div TotalCount as AvgDuration) "
    ,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, "
                &"ResultDurationSeconds with sum as TotalDuration "
                &")) "
            &"/compute( "
                &"TotalDuration div TotalCount as AvgDuration) "
    ,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, "
                &"ResultDurationSeconds with sum as TotalDuration "
            &")) "
                &"/compute( "
            &"TotalDuration div TotalCount as AvgDuration) "
    ,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} "
        &"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

測試擁有者篩選的測試持續時間

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

  • 展開 TestTest.TestOwner
  • 選取 Power BI 視覺效果交叉分析篩選器,並將欄位新增至交叉分析篩選器的欄位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} "
        &"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 回合。

)

Close filter() 子句。

/groupby(

Start groupby() 子句。

(TestSK, Test/TestName),

依測試名稱分組。

aggregate(

Start aggregate 子句可加總符合篩選準則的不同測試回合結果。

ResultCount with sum as TotalCount,

將測試回合總數計算為 TotalCount

ResultDurationSeconds with sum as TotalDuration

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

))

關閉 aggregate()groupby() 子句。

/compute(

Start compute() 子句。

TotalDuration div TotalCount as AvgDuration

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

)

Close compute() 子句。

(選擇性)重新命名查詢

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

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

展開 Power BI 中的 [測試] 資料行

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

變更數據行數據類型

  1. 從 Power Query 編輯器 選取數據TotalCount行;從 [轉換] 功能選取 [數據類型],然後選擇 [神秘 le Number]。

  2. 選取 與資料列;從 [轉換] 選單選取 [資料類型],然後選擇 [十進位數]。TotalDurationAvgDuration

若要深入瞭解如何變更數據類型,請參閱 轉換分析數據以產生Power BI報表、轉換資料行數據類型

關閉查詢並套用您的變更

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

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

建立數據表報表

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

    [測試持續時間] 資料表報表的視覺效果欄位選取項目螢幕快照。

  2. 依照列出的順序,將下列欄位新增至 [資料 行] 區段。

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. 以滑鼠右鍵按兩下 ,AvgDuration然後選擇 [平均],而不是 [總和]。

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

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

測試工作資源