Ukázková sestava doby trvání testu

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

Sestavy doby trvání testu, podobně jako sestavy zobrazené na následujícím obrázku, poskytují přehled o počtu spuštění testu a průměrné době, po které trvá spuštění konkrétního testu během spuštění kanálu.

Snímek obrazovky se sestavou tabulky doby trvání testu

Pomocí dotazů uvedených v tomto článku vygenerujte následující sestavy:

  • Doba trvání testu pro pracovní postup sestavení
  • Doba trvání testu pro pracovní postup vydání
  • Doba trvání testu pro určitou větev
  • Doba trvání testu pro konkrétní testovací soubor
  • Doba trvání testu 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 TestResultsDaily sady entit můžete použít k vytvoření různých, ale podobných sestav doby trvání testu. 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 EntitySetEntityType . 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í EntityTypehodnotu .

Doba trvání testu pro pracovní postup sestavení

K zobrazení sestavy doby trvání testu kanálu s pracovním postupem sestavení použijte následující dotazy.

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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Doba trvání testu pro pracovní postup vydání

Pomocí následujících dotazů zobrazíte sestavu doby trvání testu kanálu s pracovním postupem vydání .

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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Doba trvání testu filtrovaná podle větve

Pokud chcete zobrazit dobu trvání testů 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 do Branch.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, "
      &"ResultDurationSeconds with sum as TotalDuration"
      &"))/compute("
      &"TotalDuration div TotalCount as AvgDuration"
      &")",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Doba trvání testu filtrovaná podle testovacího souboru

Pokud chcete zobrazit dobu trvání testu kanálu pro 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 do Test.ContainerName
  • Vyberte průřez vizualizace Power BI a přidejte pole Test.ContainerName do pole průřezu .
  • Vyberte testovací soubor 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} "
      &"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

Doba trvání testu filtrovaná vlastníkem testu

Pokud chcete zobrazit dobu trvání testu kanálu pro 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 do Test.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} "
      &"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

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 pojmenovaný kanál

And Date/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 sečte různé výsledky testovacího běhu, které odpovídají kritériím filtru.

ResultCount with sum as TotalCount,

Spočítejte celkový počet testovacích běhů jako TotalCount.

ResultDurationSeconds with sum as TotalDuration

Součet celkové doby trvání všech spuštění jako TotalDuration.

))

Uzavření aggregate() a groupby() klauzule

/compute(

Klauzule Start compute() .

TotalDuration div TotalCount as AvgDuration

Pro všechny testy vypočítejte průměrnou dobu trvání tak, že celkovou dobu trvání vydělíte celkovým počtem spuštění.

)

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.

Snímek obrazovky s možnostmi nabídky dotazu Power BI a přejmenování 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

  1. V Editor Power Query vyberte TotalCount sloupec; v nabídce Transformace vyberte datový typ a pak zvolte Celé číslo.

  2. Vyberte hodnoty TotalDuration a AvgDuration sloupce, 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.

Snímek obrazovky s možností Zavřít a Použít Editor Power Query

Vytvoření sestavy tabulky

  1. V Power BI v části Vizualizace zvolte **Tabulka a přetáhněte pole do oblasti Sloupce .

    Snímek obrazovky s výběrem polí vizualizace pro sestavu tabulky Doba trvání testu

  2. Do oddílu Sloupce v uvedeném pořadí přidejte následující pole.

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. Pravým tlačítkem myši vyberte AvgDuration možnost Průměr místo součtu.

Sestava by měla vypadat podobně jako na následujícím obrázku.

Snímek obrazovky se sestavou ukázkové tabulky doby trvání testu