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
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:
| Eklenti | Arayüz | Kayıt Yöntemi |
|---|---|---|
| Özel Driver Sağlayıcı | NamedDriverProvider | DriverProviderRegistry.register() veya SPI |
| Rapor Adaptörü | ReportAdapter | ReportAdapterRegistry.register() veya SPI |
| Yaşam Döngüsü Hook | ExecutionHook | HookRegistry.register() veya SPI |
| Tam Eklenti | TestFlyPlugin | PluginRegistry.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:
- Bölüm 1:
BaseTestvetestfly.ymlile sıfır şablon kodlu kurulum - Bölüm 2: Semantik seçiciler (
getByRole),BasePageveWaitEngine - Bölüm 3: CI/CD kalite kapıları (
BuildThresholdEnforcer) ve paralel koşum - Bölüm 4:
testfly-mcpile yapay zeka test üretimi ve self-healing - Bölüm 5: Cucumber 7 BDD,
BaseCucumberStepsve@retryable - Bölüm 6: Dahili
ApiClient,BaseApiTestve hibrit UI+API akışları - Bölüm 7: Dahili axe-core erişilebilirlik (
accessibility()) veVisualAssert - Bölüm 8: Flakiness karantina motoru ve Java SPI eklenti mimarisi
#TestFly#Quarantine#Flakiness#SPI#ReportAdapter#ExecutionHook#DevOps#SDET