mb · 27 Nisan 2025 0

Locator Değişimlerinden Korkmayın! : Healenium Çözer

UI testleriyle uğraşanlar iyi bilir. Bir elementin locator’ı değişsin, tüm testler kırılır, panik başlar.Bir gün çalışan testler, ertesi gün bir butonun id‘si değiştiği için kırılabiliyor. Otomasyon mühendislerinin en büyük kabuslarından biri: Locator değişimleri. İşte tam burada, sihir gibi bir teknoloji devreye giriyor: Healenium! Bu yazıda Healenium’un ne olduğunu, nasıl çalıştığını, nasıl kurulduğunu ve neden projelerinizde kullanmanız gerektiğini adım adım anlatıyoruz.

Healenium Nedir?

Healenium, test otomasyon projelerinde kullanılan açık kaynaklı bir self-healing (kendi kendini iyileştiren) araçtır.

Locator’lar (örneğin XPath, CSS Selector) değişse bile testlerin kırılmamasını sağlar.
Nasıl mı?

  • Test sırasında bir element bulunamazsa, Healenium otomatik olarak DOM’u tarar.
  • Eski locatora en çok benzeyen yeni bir elementi bulur.
  • Testi durdurmadan çalıştırmaya devam eder.
  • Değişen locators’ı loglar ve raporlar.

Bu sayede otomasyon projeleriniz küçük UI değişiklikleri yüzünden bozulmaz!

Healenium’un Öne Çıkan Özellikleri

ÖzellikAçıklama
Self-Healing TeknolojisiLocator değişimlerini algılar ve otomatik iyileştirir.
Java & Selenium UyumluluğuSelenium WebDriver ile tam uyumludur.
Healenium ProxyTarayıcı ve test arasındaki iletişimi dinler, hataları yakalar.
Healenium Dashboardİyileştirilen locator’ları görsel bir arayüzde raporlar.
Hafif Sunucu YapısıSpring Boot tabanlı küçük bir sunucu ile çalışır.

Healenium Nasıl Çalışır?

Adım adım mekanizma şöyle işler:

  1. Normal WebDriver yerine SelfHealingDriver kullanılır.
  2. Test sırasında bir locator bulunamazsa, Healenium eski bilgileri kullanarak benzer elementleri tarar.
  3. Uygun bir eşleşme bulunursa, testi yeni locator ile sürdürür.
  4. Tüm değişiklikler dashboard veya log kayıtları üzerinden izlenebilir.

Bu sistem, küçük UI değişikliklerinin test sürecinizi durdurmasını engeller.


Kodla Küçük Bir Örnek

Normal Selenium kullanımında:

WebDriver driver = new ChromeDriver();
driver.findElement(By.id("loginButton")).click();

Healenium kullanımında:

import com.epam.healenium.SelfHealingDriver;

ChromeDriver originalDriver = new ChromeDriver();
SelfHealingDriver driver = SelfHealingDriver.create(originalDriver);

driver.findElement(By.id("loginButton")).click();

Sadece SelfHealingDriver.create() kullanarak mevcut kodlarınızda minimum değişiklikle Healenium’u entegre edebilirsiniz!


Adım Adım Healenium Kurulumu ve Kullanımı

1. Maven Bağımlılıklarını Ekleyin

pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:

<dependencies>
<!-- Healenium WebDriver -->
<dependency>
<groupId>com.epam.healenium</groupId>
<artifactId>healenium-web</artifactId>
<version>3.3.0</version>
</dependency>

<!-- Selenium Java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.10.0</version>
</dependency>
</dependencies>

Not: Daha güncel versiyonlar varsa GitHub veya Maven Central’dan kontrol etmeyi unutmayın.


2. WebDriver Yerine HealingDriver Kullanın

Test kodunuzda:

ChromeDriver originalDriver = new ChromeDriver();
SelfHealingDriver driver = SelfHealingDriver.create(originalDriver);

şeklinde bir değişiklik yaparak Healenium’u aktif hale getirebilirsiniz.


3. Healenium Dashboard Kurulumu (İsteğe Bağlı)

İyileştirilen locators’ı grafiksel olarak görmek için küçük bir dashboard kurabilirsiniz.

Adımlar:

  • GitHub’dan Healenium Server projesini klonlayın.
  • Terminal açın ve proje dizininde çalıştırın:
docker-compose up
  • Dashboard genellikle http://localhost:7878/ adresinde çalışır.

Dashboard ile tüm iyileştirmeleri geçmişe dönük olarak da takip edebilirsiniz.


Healenium Kullanırken Dikkat Edilmesi Gerekenler

  • Büyük yapısal değişikliklerde Healenium doğru iyileştirme yapamayabilir.
  • Başarılı bir self-healing için yine de iyi locator stratejileri uygulamak gerekir.
  • Dashboard ve proxy kullanımı, sisteminize küçük bir ek yük getirebilir.

Sık Sorulan Sorular (FAQ)

1. Healenium hangi test araçlarıyla uyumludur?

Sadece Selenium WebDriver tabanlı otomasyon projeleriyle uyumludur.

2. Healenium ücretli midir?

Hayır, tamamen açık kaynaklıdır.

3. Mobil testlerde kullanılabilir mi?

Doğrudan destek sunmamakla birlikte, Web testleri için optimize edilmiştir.

4. Tüm locator değişikliklerini iyileştirebilir mi?

Hayır. Çok büyük değişikliklerde manuel müdahale gerekebilir.

5. Test kodlama stilim değişecek mi?

Hayır. Sadece driver nesnesinde küçük bir değişiklik yapmanız yeterlidir.


Healenium vs Playwright vs Cypress: Farklar

ÖzellikHealeniumPlaywrightCypress
TürEklenti (Selenium destekli)Komple test otomasyon framework’üKomple test otomasyon framework’ü
Self-Healing ÖzelliğiVarYok (iyi locator yönetimi var)Yok
DillerJavaJavaScript, TypeScript, Python, C#JavaScript
Test AlanıWeb testleriWeb, Mobil, API testleriWeb testleri
DashboardVar (Opsiyonel)Harici kurulum gerekirHarici eklenti gerekir

Özet:
Healenium, mevcut Selenium projelerine self-healing desteği eklemek için kullanılırken;
Playwright ve Cypress, sıfırdan yazılan modern otomasyon araçlarıdır.
Locator iyileştirme özellikleri Playwright ve Cypress’ta yerleşik değildir.


Sonuç: Test Otomasyonunda Yeni Bir Dönem

Sürekli değişen UI’lar, otomasyon testlerinin en büyük düşmanıdır.
Healenium, bu değişimlere karşı testlerinizi koruyan bir kalkan gibi çalışır.

  • Testlerin stabilitesini artırır.
  • Otomasyon bakım maliyetlerini düşürür.
  • Sürekli entegrasyon ve dağıtım (CI/CD) süreçlerinde test kesintilerini azaltır.

Eğer mevcut Selenium altyapınızı daha güçlü ve dayanıklı hale getirmek istiyorsanız, Healenium tam size göre!

scan.nextLine() atlama problemi