Tüm yazılar
devops

TestFly Bölüm 8: Flakiness Karantina Motoru ve Java SPI Eklenti Mimarisi

TestFly karantina motorunu (testfly-quarantine.yml), flakiness puanlamasını ve özel sürücüler/rapor adaptörleri için Java SPI eklenti mimarisini keşfedin.

28 Ağustos 20262 dk okuma
TestFly Bölüm 8: Flakiness Karantina Motoru ve Java SPI Eklenti Mimarisi

Karantina Motoru ve Java SPI Eklenti Mimarisi

TestFly'ın kurumsal sürdürülebilirlik sağlayan son iki temel gücü: Flakiness Karantina Motoru ve Java SPI Eklenti Altyapısı.


1. Karantina Motoru (testfly-quarantine.yml)

Flaky testleri silmek veya @Ignore ile kapatmak yerine, CI akışını engellemeden karantinaya alın:

yaml
# testfly-quarantine.yml (Proje Kök Dizini)
quarantine:
  enabled: true
  tests:
    - className: io.testfly.examples.PaymentTest
      methodName: testStripeWebhook
      reason: "Üçüncü parti webhook düzeltmesi bekleniyor (JIRA-4021)"
      owner: "@odeme-takimi"

Karantinadaki testler CI üzerinde koşulur ancak patladığında build'i kırmak yerine raporda QUARANTINED olarak işaretlenir.


2. Java SPI Eklenti Noktaları

TestFly'ı çatallamadan (fork) SPI ile genişletin:

EklentiArayüzKayıt Yöntemi
Özel Driver SağlayıcıNamedDriverProviderDriverProviderRegistry.register() veya SPI
Rapor AdaptörüReportAdapterReportAdapterRegistry.register() veya SPI
Yaşam Döngüsü HookExecutionHookHookRegistry.register() veya SPI
Tam EklentiTestFlyPluginPluginRegistry.register() veya SPI

Örnek: Özel Slack Rapor Adaptörü

java
package io.testfly.examples.plugins;

import io.testfly.reporting.ReportAdapter;
import io.testfly.metrics.ExecutionMetrics;

public class SlackReportAdapter implements ReportAdapter {

    @Override
    public String getName() {
        return "slack";
    }

    @Override
    public void onSuiteFinish(ExecutionMetrics metrics) {
        // Slack webhook'una başarı oranı ve hata özetini gönder
    }
}

8 Bölümlük TestFly Masterclass Özeti

Tüm seri boyunca şunları inceledik:

  1. Bölüm 1: BaseTest ve testfly.yml ile sıfır şablon kodlu kurulum
  2. Bölüm 2: Semantik seçiciler (getByRole), BasePage ve WaitEngine
  3. Bölüm 3: CI/CD kalite kapıları (BuildThresholdEnforcer) ve paralel koşum
  4. Bölüm 4: testfly-mcp ile yapay zeka test üretimi ve self-healing
  5. Bölüm 5: Cucumber 7 BDD, BaseCucumberSteps ve @retryable
  6. Bölüm 6: Dahili ApiClient, BaseApiTest ve hibrit UI+API akışları
  7. Bölüm 7: Dahili axe-core erişilebilirlik (accessibility()) ve VisualAssert
  8. Bölüm 8: Flakiness karantina motoru ve Java SPI eklenti mimarisi

👉 TestFly GitHub Deposu

#TestFly#Quarantine#Flakiness#SPI#ReportAdapter#ExecutionHook#DevOps#SDET
Paylaş X LinkedIn

Yorumlar

  • Henüz yorum yok. İlk yorumu sen yaz.