Ana içeriğe geç

Neden sade Selenium değil?

Selenium'da yanlış bir şey yok — TestFly onun üzerine inşa edilmiştir ve onu asla gizlemez. Soru "Selenium mu değil mi?" değil: Selenium'un kasıtlı olarak dışarıda bıraktığı iskeleti kim yazar ve sürdürür?

Ham Selenium size bir WebDriver uzatır ve orada durur. Bunu gerçek bir test paketine dönüştürmek, her ekibin yeniden inşa ettiği aynı parça setini inşa etmek — ve sonsuza dek sahiplenmek — anlamına gelir.


Sade Selenium ile sahip olduğunuz boilerplate​

Hemen hemen her Java Selenium projesi bunun kendi kopyasını büyütür:

  • Paralel çalıştırmalar için ThreadLocal<WebDriver> el değiştirmeli bir DriverFactory
  • Driver ikili dosya yönetimi (tarihsel olarak WebDriverManager)
  • Her yere içe aktarılan WebDriverWait / ExpectedConditions çevresindeki bir WaitUtils sarmalayıcısı
  • Takılma durumundaki testler için onu ekleyecek bir listener ile birlikte bir IRetryAnalyzer
  • Başarısızlıkta ekran görüntüsü alan bir ITestListener
  • Raporlama bağlantıları (ExtentReports / Allure) ve CI tutkalı

Bu ücretsiz bir altyapıdır: yazarsınız, hata ayıklarsınız ve bakımını yaparsınız — ve nadiren test edilir veya paralel-güvenlidir. Her yeni projede veya şirkette sıfırdan yeniden yazılır.


TestFly neyi değiştirir​

TestFly, zaten inşa edilmiş, sürdürülmüş, test edilmiş, thread-güvenli ve belgelenmiş o framework'tür. Gerçekte sizin olan kısmı (test niyeti) tutar ve altyapıyı silersiniz:

Sade Selenium (siz inşa eder & sürdürürsünüz)TestFly
DriverFactory + ThreadLocal<WebDriver>BaseTest'i genişletin — yaşam döngüsü yönetilir, paralel-güvenli
WebDriverManager / driver ikilileriSelenium Manager, otomatik
WaitUtils / WebDriverWait yardımcılarıOtomatik bekleme yapan locator'lar + WaitEngine
Kırılgan CSS/XPath seçicileriErişilebilirlik öncelikli locator'lar
IRetryAnalyzer + listener@Retryable + tek bir yapılandırma satırı
Başarısızlıkta ekran görüntüsü listener'ıBaşarısızlıkta otomatik
ExtentReports/Allure bağlantılarıDahil edilen HTML raporu + JUnit XML
Proje başına özel CI bağlantılarıGitHub Actions / Jenkins / CircleCI'yi otomatik algılar
Hataları siz düzeltirsinizFramework düzeltmeleri sunar

…Selenium'u gizlemeden​

Çoğu "üretkenlik katmanının" sorunu, WebDriver'ı elinizden almaları ve soyutlama sızdığında sizi tuzağa düşürmeleridir. TestFly bunu yapmaz. Gelenekler uymadığında getDriver() size ham WebDriver'ı verir ve doğrudan By / WebElement'e inersiniz. Görüşlü varsayılanlar, tam bir kaçış kapağı.

Selenium'un kendisi olduğu için benimseme aşamalıdır — tek bir test sınıfını BaseTest'e işaret edebilirsiniz ve yarı taşınmış bir paket yine de çalışır.


Sonraki adımlar​