- API: Yazılımlar arası iletişimi sağlayan arayüz.
- Yük Testi: Bir uygulamanın belirli bir yük altında performansını değerlendirmek için yapılan testler; dayanıklılık, hız ve genel performansı ölçer.
- k6: Açık kaynaklı yük testi aracı; JavaScript tabanlı script, konsol tabanlı. Gerçekçi API trafiği simüle edip sistemin yük altındaki tepkisini ölçer.
- JMeter: Açık kaynaklı, Java tabanlı yük testi aracı; GUI veya XML ile senaryo tanımlanır. Gerçekçi kullanıcı davranışları simüle edilir.
Grafana k6 ve Apache JMeter Karşılaştırması
JMeter arayüzü grafik raporları, Backend listener, Grafana ve InfluxDB ile görselleştirme sunar. k6 konsol tabanlı olmakla birlikte birçok veri görselleştirme sistemi ve Grafana entegrasyonu ile kullanılabilir.
k6 temel test senaryoları
API endpoint’leri için yük testi, dayanıklılık testi, stres testi ve performans optimizasyonu senaryolarına ait örnekler aşağıdadır.Yük testi
Aynı anda yüksek sayıda kullanıcı bağlantısını simüle eder.Dayanıklılık testi
Belirli süre boyunca sabit yük altında uygulamanın stabil çalışmasını simüle eder.Stres testi
Ani trafik artışları veya kullanıcı sayısındaki hızlı değişimleri simüle eder.Örnek k6 senaryosu (aşamalı yük)
k6 run k6_load_test.js
k6 sonuç metrikleri (özet): http_reqs (toplam istek), http_req_duration (yanıt süresi), http_req_failed, iterations, vus/vus_max, checks, data_received/data_sent, p(90)/p(95) (yüzdelik dilimler). Bu metrikler API’nizin yük altındaki performansını ve darboğazları değerlendirmenize yardımcı olur. k6, Prometheus ve Grafana ile sistem metrikleriyle birlikte görselleştirilebilir.
Kurulum: k6 kurulum rehberi (Windows, Mac, Linux).
JMeter temel test senaryoları
JMeter’da Threads (istemci sayısı), Loop (döngü sayısı) ve Ramp-up Period (yükleme süresi) değerleri girilir. API performans testi: Threads = API’ye eşzamanlı istek sayısı (örn. 500); Loop = her istemcinin tekrarlama sayısı; Ramp-up = tüm istemcilerin başlatılma süresi. Ek senaryolar: (1) İstek sayısını artırarak yük simülasyonu, (2) Maksimum yük testi, (3) Uzun süreli yük testi, (4) Farklı istek türleri (GET, POST, PUT, DELETE), (5) Ortalama yanıt süresi testi, (6) Hata yönetimi testi, (7) Zamanlayıcı ile periyodik testler. JMeter hem GUI’den RUN hem de terminalden çalıştırılabilir; sonuçlar CSV’ye yazılabilir:JMeter ve k6 performans testi sonuçlarının karşılaştırılması
Not: Değerler örnek test ortamına göre değişir.

