Neden TestFly?
Geliştiriciler bir API'yi benimsemeden önce bir felsefeyi benimser. Bu sayfa o felsefedir.
TestFly, Selenium'ın Spring Boot'udur — sıfır kurulum, daha akıllı varsayılanlar, Playwright esintili API'ler ve Selenium'u gizlemeden kurumsal özellikler.
Selenium güçlüdür ve her yerdedir, ancak bilerek düşük seviyelidir: size bir WebDriver verir ve yolunuzdan çekilir. Gerisi — driver yaşam döngüsü, bekleme, retry, raporlama, CI entegrasyonu — size kalır. Her takım aynı iskeleti yeniden inşa eder. TestFly, bu iskeletin bir kez, doğru yapılmış halidir.
Üç katmanlı fikir
TestFly fikir sahibidir ama kafes değildir. Tasarım katmanlıdır, eşit parçalar değil:
- Fikir sahibi çekirdek (birincil). Yapılandırma yerine convention, varsayılan olarak sıfır boilerplate. Tek bir bağımlılık ekleyin,
BaseTest/BasePageextend edin; framework zaten akıllıca kararlar vermiştir — driver yaşam döngüsü, bekleme, retry, raporlama, CI entegrasyonu.testfly.ymlisteğe bağlıdır; hiç yazmasanız bile makul varsayılanlar sizi korur. - Selenium'u asla gizlemez (kısıt). Daha ağır abstraction'ların aksine, TestFly sizden asla ham
WebDriver'ı almaz. Convention'lar uymadığında doğrudanWebDriver/By/WebElementseviyesine inebilirsiniz. Kafes olmadan fikir sahibi. - Genişletilebilir araç takımı (kaçış kapısı). SPI/registry plugin sistemi, güç kullanıcıları için modülerdir — özel driver'lar, rapor adaptörleri, lifecycle hook'ları. Çoğu kullanıcı buna hiç dokunmaz.
Tek bağımlılıkla neler kazanırsınız
Önce sonuçlar — sonrasında bunları sağlayan API:
| Sonuç | Nasıl |
|---|---|
Bir daha asla Thread.sleep() yazmayın | Otomatik bekleyen locator'lar + WaitEngine |
| Testleriniz CSS refactor'lerinden sağ çıksın | Erişilebilirlik-öncelikli locator'lar — getByRole, getByLabel, getByText |
| Flaky test'ler otomatik iyileşsin | @Retryable + tek config satırı — IRetryAnalyzer tesisatı yok |
| Bir test neden başarısız oldu tam olarak görün | Başarısızlık anında otomatik ekran görüntüsü, HTML raporuna gömülü |
| WebDriver binary'lerini yönetmeyin | Selenium Manager driver'ları otomatik çözer |
| Paralel çalıştırma kutudan çıkar | ThreadLocal driver izolasyonu — paralel çalıştırma |
| Forklamadan genişletin | Driver, rapor ve hook'lar için Java SPI plugin'leri |
Kimler için
- Selenium'a zaten yatırım yapmış takımlar, Playwright tarzı bir ergonomiyi Selenium / Java / TestNG yığınını, ekibin yetkinliklerini veya Selenium Grid'ini terk etmeden isteyenler.
- Kendi framework'ünü sürdüren takımlar — bir
BaseTest, birDriverFactory, bir yığın wait utility'si — o tesisatı debug etmektense silmeyi tercih edenler.
Bu takımların gerçekten sorduğu iki "neden" sorusunun her biri kendi sayfasına sahip:
- Neden düz Selenium değil? — boilerplate'ın gerçek maliyeti
- Neden Playwright değil? — dürüst bir karşılaştırma (onun yerini aldığımızı iddia etmiyoruz)
Sonraki adımlar
- Hızlı Başlangıç — 5 dakikada ilk test
- BaseTest / BasePage — extend ettiğiniz temel class'lar
- Yapılandırma Referansı — tam
testfly.ymlreferansı