手動測試套件匯總檢視範例報表
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 的基本瞭解。
若要讓報表產生有用的數據,小組必須執行下列活動來管理測試計劃:
定義測試計劃、測試套件和測試案例。 指定其狀態。 若要讓 Test Suite 執行,它必須處於 [進行中] 狀態。 若要讓測試案例執行,它必須處於就緒狀態。 如需詳細資訊,請參閱 建立測試計劃和測試套件 和 建立手動測試案例。
執行手動測試並驗證結果。 將測試案例中每個驗證步驟的結果標示為通過或失敗。 如需詳細資訊,請參閱 執行手動測試。
注意
如果測試人員是驗證測試步驟,則必須標示狀態為測試步驟的測試步驟。 測試的整體結果會反映已標記之所有測試步驟的狀態。 因此,如果任何測試步驟標示為失敗或未標示,測試將會有失敗的狀態。
範例查詢
您可以使用實體集的 TestPoints
下列查詢來建立匯總的測試套件報表。
注意
若要判斷篩選或報表用途的可用屬性,請參閱 Test Plans Analytics 的元數據參考。 您可以使用的 或 NavigationPropertyBinding Path
值EntitySet
底下EntityType
的任何Property
值來篩選查詢或傳回屬性。 每個 EntitySet
對應至 EntityType
。 如需每個值之數據類型的詳細資訊,請檢閱針對對應 EntityType
提供的元數據。
將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 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),
以確保即使有兩個具有相同名稱的測試套件,它們也會顯示為兩個不同的專案,因為它們會有兩個不同的標識符。
/aggregate($count as TotalCount,
匯總篩選測試點的數據,其計數為 TotalCount
。
cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as Passed,
在匯總時,類型轉換測試點具有最新的執行結果 「傳遞」到1,並將其加總為『Passed
計量。
/compute(Executed mul 100 div TotalCount as ExecPct
提供計算計量 ExecPct,其等於 (Executed test points / Total count * 100)。
(選擇性)重新命名查詢
您可以將預設查詢標籤 Query1 重新命名為更有意義的專案。 只要從 [ 查詢設定 ] 窗格輸入新名稱即可。
展開 Power Query 編輯器 中的數據行
建立報表之前,您必須展開數據 TestSuite
行,以將記錄扁平化為特定欄位。 若要瞭解如何,請參閱 轉換分析數據以產生 Power BI 報表。
在 Power BI 中,執行下列步驟。
完成後,您可以選擇重新命名數據行。
擴大
TestSuite
選擇展開按鈕。
選取要壓平的欄位。
數據表現在包含和
TestSuite.TitleLevel3
的TestSuite.IdLevel3
實體欄位。
以滑鼠右鍵按鍵按鍵列標頭,然後選取 [ 重新命名...
變更數據行數據類型
從 Power Query 編輯器,選取包含數位的所有數據行,例如 TotalCount、RunCount 和 Passed;從 [轉換] 功能選取 [資料類型],然後選擇 [整數]。 如需變更數據類型的詳細資訊,請參閱 轉換分析數據以產生Power BI報表、轉換資料行數據類型。
(選擇性)重新命名數據行欄位
您可以重新命名資料列欄位。 例如,您可以將資料列 NotApplicable
重新命名為 Not Applicable
,或 TotalCount
重新命名為 Total Count
。 若要瞭解如何,請參閱 重新命名數據行欄位。
關閉查詢並套用您的變更
完成所有數據轉換之後,請從 [常用] 功能表選擇 [關閉及套用],以儲存查詢並返回 Power BI 中的 [報表] 索引卷標。
建立數據表報表
- 在 [視覺效果] 底下,選擇 [數據表]。
- 在 [資料行
TestSuite.TitleLevel3
] 底下拖放 、NotRunCount
、RunCount
、PassedCount
TotalCount
。 - 針對 [計數] 選取 [加總] 作為匯總。
您的報表看起來應該類似下圖。