Ukázková sestava flaky testů
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Můžete vytvořit sestavu, jak je znázorněno na následujícím obrázku, která obsahuje přehledné testy, ke kterým dochází v spuštěních kanálu, které zahrnují testovací úlohy. Flaky test je test, který poskytuje různé výsledky, jako je úspěšné nebo neúspěšné, i když ve zdrojovém kódu nebo spouštěcím prostředí nedošlo k žádným změnám. Další informace o povolení flaky testů naleznete v tématu Správa nespolehlivé testy. Informace o přidávání testů do kanálu najdete v části Zdroje úloh testování dále v tomto článku.
Pomocí dotazů uvedených v tomto článku vygenerujte následující sestavy:
- Flaky testy pro pracovní postup sestavení
- Flaky testy pro pracovní postup vydávání verzí
- Flaky testy pro určitou větev
- Flaky testy pro konkrétní testovací soubor
- Flaky testy pro konkrétního vlastníka testu.
Důležité
Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou obecně dostupné pro Azure DevOps Services a Azure DevOps Server 2020 a novější verze. Ukázkové dotazy uvedené v tomto článku jsou platné pouze pro Azure DevOps Server 2020 a novější verze a závisí na verzi v3.0-Preview nebo novější. Doporučujeme, abyste tyto dotazy používali a poskytli nám zpětnou vazbu.
Požadavky
- Přístup: Buďte členem projektu s alespoň základním přístupem.
- Oprávnění: Ve výchozím nastavení mají členové projektu oprávnění k dotazování na Analýzy a vytváření zobrazení.
- Další informace o dalších požadavcích týkajících se povolení služeb a funkcí a obecných aktivit sledování dat najdete v tématu Oprávnění a požadavky pro přístup k Analýzám.
Poznámka:
Tento článek předpokládá, že si přečtete přehled ukázkových sestav pomocí dotazů OData a máte základní znalosti o Power BI.
Vzorové dotazy
Následující dotazy sady entit můžete použít k vytvoření různých, ale podobných TestResultsDaily
testovacích sestav kanálu. Sada TestResultsDaily
entit poskytuje denní agregaci TestResult
snímků spuštění seskupených podle testu.
Poznámka:
Informace o dostupných vlastnostech pro účely filtru nebo sestavy najdete v referenčních informacích k metadatům pro analýzu testovacích plánů a metadata pro Azure Pipelines. Dotazy můžete filtrovat nebo vracet vlastnosti pomocí libovolné hodnoty Property
pod hodnotami nebo NavigationPropertyBinding Path
hodnotami dostupnými v objektu EntitySet
EntityType
. Každý EntitySet
odpovídá hodnotě EntityType
. Další informace o datovém typu každé hodnoty najdete v metadatech zadaných pro odpovídající EntityType
hodnotu .
Flaky tests for a Build workflow
Pomocí následujících dotazů můžete zobrazit podrobné testy kanálu pracovního postupu sestavení .
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled ukázkových sestav pomocí dotazů 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(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlaykRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky tests for Release workflow
Pomocí následujících dotazů můžete zobrazit podrobné testy kanálu pracovního postupu vydané verze .
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled ukázkových sestav pomocí dotazů 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(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testy filtrované podle větve
Pokud chcete zobrazit neúspěšné testy kanálu pro určitou větev, použijte následující dotazy. Pokud chcete vytvořit sestavu, proveďte následující kroky navíc spolu s tím, co je uvedeno dále v tomto článku.
- Rozbalit
Branch
doBranch.BranchName
- Vyberte průřez vizualizace Power BI a přidejte pole
Branch.BranchName
do pole průřezu . - Vyberte název větve z průřezu, pro který potřebujete zobrazit souhrn výsledků.
Další informace o používání průřezů najdete v tématu Průřezy v Power BI.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled ukázkových sestav pomocí dotazů 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(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testy filtrované podle testovacího souboru
Pokud chcete zobrazit podrobné testy kanálu a konkrétního testovacího souboru, použijte následující dotazy. Pokud chcete vytvořit sestavu, proveďte následující dodatečné kroky spolu s tím, co je definováno dále v tomto článku.
- Rozbalit
Test
doTest.ContainerName
- Vyberte průřez vizualizace Power BI a přidejte pole
Test.ContainerName
do pole průřezu . - V průřezu vyberte název kontejneru, pro který potřebujete zobrazit souhrn výsledků.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled ukázkových sestav pomocí dotazů 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(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Flaky testy filtrované podle vlastníka testu
Pokud chcete zobrazit flakyové testy pro kanál a testy vlastněné konkrétním vlastníkem testu, použijte následující dotazy. Pokud chcete vytvořit sestavu, proveďte následující dodatečné kroky spolu s tím, co je definováno dále v tomto článku.
- Rozbalit
Test
doTest.TestOwner
- Vyberte průřez vizualizace Power BI a přidejte pole
Test.TestOwner
do pole průřezu . - Vyberte vlastníka testu z průřezu, pro který potřebujete zobrazit souhrn výsledků.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled ukázkových sestav pomocí dotazů 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(FlakyCount gt 0) "
&"/compute( "
&"(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Náhradní řetězce a rozpis dotazů
Nahraďte následující řetězce hodnotami. Nezahrnujte do náhradních závorek {} . Pokud je například název vaší organizace "Fabrikam", nahraďte {organization}
ho Fabrikam
, nikoli {Fabrikam}
.
{organization}
– Název vaší organizace{project}
- Název projektu vašeho týmu{pipelinename}
– Název vašeho kanálu. Příklad:Fabrikam hourly build pipeline
{startdate}
- Datum zahájení sestavy. Formát: RRRR-MM-DDZ. Příklad:2021-09-01Z
představuje 1. září 2021. Nepoužívejte uvozovky ani hranaté závorky a pro oba měsíce a datum použijte dvě číslice.
Rozpis dotazů
Následující tabulka popisuje jednotlivé části dotazu.
Část dotazování
Popis
$apply=filter(
Klauzule Start filter()
.
Pipeline/PipelineName eq '{pipelineName}'
Návratová testovací spuštění pro zadaný kanál.
and CompletedOn/Date ge {startdate}
Návratová testovací spuštění k zadanému datu nebo po tomto datu.
and Workflow eq 'Build'
Vrácení testovacích běhů pro Build
pracovní postup
)
Klauzule Close filter()
/groupby(
Klauzule Start groupby()
.
(TestSK, Test/TestName),
Seskupte podle názvu testu.
aggregate(
Počáteční aggregate
klauzule pro výpočet testovacích běhů odpovídajících kritériím filtru.
ResultCount with sum as TotalCount,
Spočítejte celkový počet testovacích běhů jako TotalCount
.
ResultPassCount with sum as PassedCount,
Spočítejte celkový počet úspěšných testovacích běhů jako PassedCount
.
ResultFailCount with sum as FailedCount,
Spočítejte celkový počet neúspěšných testovacích spuštění jako FailedCount
.
ResultNotExecutedCount with sum as NotExecutedCount
Spočítejte celkový počet nespouštět testovacích běhů jako NotExecutedCount
.
ResultNotImpactedCount with sum as NotImpactedCount,
Spočítejte celkový počet ovlivněných testovacích běhů jako NotImpactedCount
.
ResultFlakyCount with sum as FlakyCount
Spočítejte celkový počet záležných testovacích běhů jako FlakyCount
.
))
Uzavření aggregate()
a groupby()
klauzule
/filter(FlakyCount gt 0)
Vyfiltrujte pouze ty testy, které byly alespoň jednou vyfiltrovány.
/compute(
Klauzule Start compute()
.
(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate
Pro všechny zálechlé testy vypočítejte FlakyRate
.
)
Klauzule Close compute()
(Volitelné) Přejmenování dotazu
Výchozí popisek dotazu , Query1, můžete přejmenovat na něco smysluplnějšího. Jednoduše zadejte nový název z podokna Nastavení dotazu.
Rozbalení sloupce Test v Power BI
Test
Rozbalením sloupce zobrazíte rozbalenou entitu Test.TestName
. Rozbalení sloupce zplošťuje záznam do konkrétních polí. Postup najdete v tématu Transformace analytických dat pro generování sestav Power BI a rozbalení sloupců.
Změna datového typu sloupce
V Editor Power Query vyberte
TotalCount
položku , ,PassedCount
FailedCount
,NotExecutedCount
,NotImpactedCount
aFlakyCount
sloupce; v nabídce Transformace vyberte Datový typ a pak zvolte Celé číslo.FlakyRate
Vyberte sloupec, v nabídce Transformace vyberte datový typ a pak zvolte Desetinné číslo.
Další informace o změně datového typu najdete v tématu Transformace analytických dat pro generování sestav Power BI a transformace datového typu sloupce.
Zavřete dotaz a použijte změny.
Jakmile dokončíte všechny transformace dat, v nabídce Domů zvolte Zavřít a použít dotaz a vraťte se na kartu Sestava v Power BI.
Vytvoření sestavy tabulky
V Power BI v části Vizualizace zvolte Tabulka a přetáhněte pole do oblasti Sloupce .
Do oddílu Sloupce v uvedeném pořadí přidejte následující pole.
Test.TestName
TotalCount
PassedCount
FailedCount
FlakyCount
FlakyRate
Sestava by měla vypadat podobně jako na následujícím obrázku.
Testovací zdroje úkolů
- Paralelní spouštění testů pomocí úlohy Visual Studio Test
- Paralelní spouštění testů pro všechny spouštěče testů
- Zrychlení testování pomocí analýzy dopadu testu (TIA)
- Správa nespolehlivého testování
- Aspekty testování uživatelského rozhraní
- Zátěžové testování Azure
- Referenční informace k úlohám Azure Pipelines, testovací úlohy