Ana içeriğe geç

Çalıştırma Motorları (Gatling ve JDK)

TestFly, motor bağımsız bir mimariye sahiptir. İki farklı motor seçeneği sunar: Kurumsal ölçekli testler için yüksek başarımlı Gatling motoru ve yerel hızlı doğrulamalar için sıfır bağımlılıklı JDK motoru.


1. Motor Karşılaştırması​

ÖzellikGatling Motoru (gatling)JDK Motoru (jdk)
Temel AltyapıGatling 3.13.x + Netty asenkron IOJava 21+ HttpClient + Sanal İş Parçacıkları
Bağımlılık Durumuİsteğe bağlı (gatling-charts-highcharts)Java standart kütüphanesine gömülü
Süreç İzolasyonuForked ayrı JVM alt süreciTest iş parçacığında aynı süreçte çalışır
Yerel Raporİnteraktif Highcharts HTML raporuBütünleşik TestFly HTML gösterge paneli
Alt Süreç Logugatling-subprocess.logStandart TestFly log akışı
Önerilen KullanımStres testleri, CI/CD hatlarıYerel duman testleri, hızlı PR doğrulamaları

2. Otomatik Motor Seçimi (auto)​

Varsayılan loadtest.engine: auto ayarı, sınıf yolunu dinamik olarak inceler:

// Sınıf yolunda io.gatling.app.Gatling sınıfı mevcutsa:
// GatlingEngine devreye girer
// Yoksa:
// Hata vermeden sessizce JdkLoadEngine altyapısına geri çekilir

Bu sayede Gatling bağımlılıkları olmayan makinelerde de testler hatasız şekilde koşturulabilir.


3. Motoru Açıkça Belirtme​

İstediğiniz motoru konfigürasyondan veya kod içinden zorunlu tutabilirsiniz:

testfly.yml Dosyasında​

loadtest:
engine: gatling # veya 'jdk'

Kod İçinde (Akıcı API)​

load("/api/health")
.engine("jdk") // Hızlı sonuç için JDK motorunu zorunlu kılar
.users(10)
.run();

Anotasyon ile​

@Test
@io.testfly.loadtest.LoadTest(engine = "gatling")
public void stresTesti() {
load("/api/payment/checkout").run();
}

Eşzamanlılık ve throughput donanıma, hedef servise ve senaryoya bağlıdır. Sabit kapasite veya başlangıç süresi garantisi yoktur; kendi yükünüzü ölçün. JDK yük motoru kendi transport’unu kullanır; ApiClient interceptor ve mock kuralları otomatik uygulanmaz.