Aracılığıyla paylaş


Flaky testleri örnek raporu

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

Aşağıdaki görüntüde gösterildiği gibi, test görevlerini içeren işlem hattı çalıştırmalarında meydana gelen istikrarsız testleri listeleyen bir rapor oluşturabilirsiniz. Flaky test, kaynak kodunda veya yürütme ortamında değişiklik olmasa bile başarılı veya başarısız gibi farklı sonuçlar sağlayan bir testtir. Flaky testlerini etkinleştirme hakkında daha fazla bilgi için bkz . Flaky testlerini yönetme. İşlem hattına test ekleme hakkında bilgi için bu makalenin devamında yer alan Görev kaynaklarını test etme bölümüne bakın.

Flaky Tests Table raporunun ekran görüntüsü.

Aşağıdaki raporları oluşturmak için bu makalede sağlanan sorguları kullanın:

  • Derleme iş akışı için güvenilmez testler
  • Yayın iş akışı süreci için güvenilmez testler
  • Belirli bir dal için tutarsız testler
  • Belirli bir test dosyası için istikrarsız testler
  • Belirli bir test sahibi için gevşek testler.

Önemli

Power BI tümleştirmesi ve Analiz Hizmeti'nin OData akışına erişim genellikle Azure DevOps Services ve Azure DevOps Server 2020 ve sonraki sürümlerde kullanılabilir. Bu makalede sağlanan örnek sorgular yalnızca Azure DevOps Server 2020 ve sonraki sürümlerde geçerlidir ve v3.0 önizleme veya sonraki sürüme bağlıdır. Bu sorguları kullanmanızı ve bize geri bildirim sağlamanızı öneririz.

Kategori Gereksinimler
Erişim seviyeleri - Proje Üyesi.
- En az Temel erişim.
İzinler Varsayılan olarak, proje üyeleri Analytics'i sorgulama ve görünüm oluşturma iznine sahiptir. Hizmet ve özellik etkinleştirme ve genel veri izleme etkinlikleriyle ilgili diğer önkoşullar hakkında daha fazla bilgi için bkz . Analytics'e erişim izinleri ve önkoşulları.

Not

Bu makalede, OData Sorguları kullanarak Örnek Raporlara Genel Bakış makalesini okuduğunuz ve Power BI hakkında temel bilgilere sahip olduğunuz varsayılır.

Örnek sorgular

Farklı ama benzer işlem hattı flaky test raporları oluşturmak için TestResultsDaily varlık kümesinin sorgularını kullanabilirsiniz. TestResultsDaily Varlık kümesi, teste göre gruplandırılmış yürütmelerin günlük anlık görüntü toplamını TestResult sağlar.

Not

Filtre veya rapor amacıyla kullanılabilir özellikleri belirlemek için, Test Planları Analizi için Meta Veri Başvurusu ve Azure Pipelines için Meta Veri Başvurusu belgelerine bakın. Sorgularınızı filtreleyebilir veya bir Property, EntityType altında ya da bir NavigationPropertyBinding Path ile birlikte kullanılabilen herhangi bir EntitySet değeri kullanarak özellikleri döndürebilirsiniz. Her EntitySet bir EntityTypeöğesine karşılık gelir. Her değerin veri türü hakkında daha fazla bilgi için ilgili EntityTypeiçin sağlanan meta verileri gözden geçirin.

Yapı iş akışı için istikrarsız testler

Derleme iş akışı işlem hattındaki flaky testleri görüntülemek için aşağıdaki sorguları kullanın.

Aşağıdaki Power BI sorgusunu kopyalayıp Veri Al>Boş Sorgu penceresine doğrudan yapıştırın. Daha fazla bilgi için bkz . OData sorgularını kullanan örnek raporlara genel bakış.

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

Yayın iş akışı için güvenilmez testler

Bir Yayın iş akışı işlem hattı için flaky testlerini görüntülemek amacıyla aşağıdaki sorguları kullanın.

Aşağıdaki Power BI sorgusunu kopyalayıp doğrudan Veri Al>Boş Sorgu penceresine yapıştırın. Daha fazla bilgi için bkz . OData sorgularını kullanan örnek raporlara genel bakış.

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

Branch tarafından filtrelenen flaky testleri

Belirli bir dal için işlem hattının başarısız testlerini görüntülemek için aşağıdaki sorguları kullanın. Raporu oluşturmak için, bu makalenin devamında belirtilenlerle birlikte aşağıdaki ek adımları uygulayın.

  • BranchBranch.BranchName'a genişlet
  • Power BI Görselleştirme Dilimleyicisi'ni seçin ve alanı Branch.BranchName dilimleyicinin Alanına ekleyin
  • Sonuç özetini görmeniz gereken dilimleyiciden dal adını seçin.

Dilimleyicileri kullanma hakkında daha fazla bilgi için bkz . Power BI'da dilimleyiciler.

Aşağıdaki Power BI sorgusunu kopyalayıp doğrudan Veri Al>Boş Sorgu penceresine yapıştırın. Daha fazla bilgi için bkz . OData sorgularını kullanan örnek raporlara genel bakış.

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

Test dosyasına göre filtrelenmiş flaky testleri

İşlem hattının ve belirli bir test dosyasının flaky testlerini görüntülemek için aşağıdaki sorguları kullanın. Raporu oluşturmak için, bu makalenin devamında tanımlananlarla birlikte aşağıdaki ek adımları uygulayın.

  • Test öğesini Test.ContainerName öğesine genişlet
  • Power BI Görselleştirme Dilimleyicisi'ni seçin ve alanı Test.ContainerName dilimleyicinin Alanına ekleyin
  • Sonuç özetini görmek istediğiniz kapsayıcı adını dilimleyiciden seçin.

Aşağıdaki Power BI sorgusunu kopyalayıp doğrudan Veri Alma>Boş Sorgu penceresine yapıştırın. Daha fazla bilgi için bkz . OData sorgularını kullanan örnek raporlara genel bakış.

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

Test sahibi tarafından filtrelenen flaky testler

İşlem hattının Flaky testlerini ve belirli bir test sahibinin sahip olduğu testleri görüntülemek için aşağıdaki sorguları kullanın. Raporu oluşturmak için, bu makalenin devamında tanımlananlarla birlikte aşağıdaki ek adımları uygulayın.

  • Test içine Test.TestOwner genişlet
  • Power BI Görselleştirme Dilimleyicisi'ni seçin ve alanı Test.TestOwner dilimleyicinin Alanına ekleyin
  • Sonuç özetini görmeniz gereken dilimleyiciden test sahibini seçin.

Aşağıdaki Power BI sorgusunu kopyalayıp Veri Al>Boş Sorgu penceresine doğrudan yapıştırın. Daha fazla bilgi için bkz . OData sorgularını kullanan örnek raporlara genel bakış.

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

Değiştirme dizeleri ve sorgu dökümü

Aşağıdaki dizeleri değerlerinizle değiştirin. Yerine koyarken köşeli ayraçları {} eklemeyin. Örneğin, kuruluşunuzun adı "Fabrikam" ise, "{organization}" yerine "Fabrikam" koyun, "{Fabrikam}" değil.

 

  • {organization} - Kuruluşunuzun adı
  • {project} - Ekip projenizin adı
  • {pipelinename} - İşlem hattı adınız. Örnek: Fabrikam hourly build pipeline
  • {startdate} - Raporunuzu başlatma tarihi. Biçim: YYYY-AA-GGZ. Örnek: 2021-09-01Z 1 Eylül 2021'i temsil eder. Tırnak veya köşeli ayraç içine kapalı bir şekilde yazmayın ve ay ve gün için iki basamak kullanın.

Sorgu dökümü

Aşağıdaki tabloda sorgunun her bölümü açıklanmaktadır.

Sorgu bölümü

Açıklama

$apply=filter(

Start filter() yan tümcesi.

Pipeline/PipelineName eq '{pipelineName}'

Belirtilen işlem hattı için test çalıştırmalarını döndür.

and CompletedOn/Date ge {startdate}

Dönüş testi belirtilen tarihte veya sonrasında çalışır.

and Workflow eq 'Build'

Test çalıştırmalarını bir Build iş akışı için geri getir.

)

Kapat filter() yan tümcesi.

/groupby(

Start groupby() yan tümcesi.

(TestSK, Test/TestName),

Test adına göre gruplandırın.

aggregate(

Filtre ölçütleri ile eşleşen test çalıştırmalarını hesaplamak için Start aggregate yan tümcesi.

ResultCount with sum as TotalCount,

Test çalıştırmalarının toplam sayısını olarak TotalCountsayar.

ResultPassCount with sum as PassedCount,

Geçirilen test çalıştırmalarının toplam sayısını PassedCount olarak sayar.

ResultFailCount with sum as FailedCount,

Başarısız test çalıştırmalarının toplam sayısını olarak FailedCountsayın.

ResultNotExecutedCount with sum as NotExecutedCount

Yürütülmemiş test çalıştırmalarının toplam sayısını olarak NotExecutedCountsayın.

ResultNotImpactedCount with sum as NotImpactedCount,

Etkilenmeyen test çalıştırmalarının toplam sayısını olarak NotImpactedCountsayın.

ResultFlakyCount with sum as FlakyCount

Flaky test çalıştırmalarının toplam sayısını FlakyCount olarak say.

))

aggregate() ve groupby() yan tümcelerini kapatın.

/filter(FlakyCount gt 0)

Yalnızca en az bir kez tutarsız olan testleri filtreleyin.

/compute(

Start compute() yan tümcesi.

(FlakyCount div cast(TotalCount, Edm.Decimal)) mul 100 as FlakyRate

Tüm flaky testler için FlakyRate değerini hesaplayın.

)

compute() yan tümcesini kapat.

(İsteğe bağlı) Sorguyu yeniden adlandırma

Varsayılan sorgu etiketi olan Query1'i daha anlamlı bir şekilde yeniden adlandırabilirsiniz. Sorgu Ayarları bölmesinden yeni bir ad girmeniz yeterlidir.

Power BI sorgu menüsü seçeneklerinin ekran görüntüsü, sorguyu yeniden adlandırma.

Power BI'da Test sütununu genişletme

Test Genişletilmiş varlığı Test.TestNamegöstermek için sütununu genişletin. Sütunu genişletmek, kaydı belirli alanlara böler. Nasıl yapılacağını öğrenmek için Power BI raporları oluşturmak üzere Analytics verilerini dönüştürme, sütunları genişletme bölümüne bakın.

Sütun veri türünü değiştirme

  1. Power Query Düzenleyicisi'nde, TotalCount, PassedCount, FailedCount, NotExecutedCount, NotImpactedCount ve FlakyCount sütunlarını seçin; Dönüştür menüsünden Veri Türü'nü seçin ve ardından Tam Sayı'yı seçin.

  2. FlakyRate Sütunu seçin; Dönüştür menüsünden Veri Türü'nüseçin ve ardından Ondalık Sayı'yı seçin.

Veri türünü değiştirme hakkında daha fazla bilgi için bkz Power BI raporları oluşturmak için Analitik verilerini dönüştürme, Sütun veri türünü dönüştürme.

Sorguyu kapatma ve değişikliklerinizi uygulama

Tüm veri dönüşümlerinizi tamamladıktan sonra, sorguyu kaydetmek ve Power BI'daki Rapor sekmesine dönmek için Giriş menüsünden Kapat ve Uygula'yı seçin.

Kapat ve Uygula seçeneğinin Power Query Düzenleyicisi ekran görüntüsü.

Tablo raporunu oluşturma

  1. Power BI'da Görselleştirmeler'in altında Tablo'ya tıklayın ve alanları Sütunlar alanına sürükleyip bırakın.

    Flaky testleri tablo raporu için görselleştirme alanları seçimlerinin ekran görüntüsü.

  2. Sütunlar bölümüne listelenen sırayla aşağıdaki alanları ekleyin.

    • Test.TestName
    • TotalCount
    • PassedCount
    • FailedCount
    • FlakyCount
    • FlakyRate

Raporunuz aşağıdaki görüntüye benzer görünmelidir.

Örnek Flaky Testleri Tablosu raporunun ekran görüntüsü.

Görev kaynaklarını test et