🚀 İleri Seviye JMeter
İleri Seviye JMeter: JMeter'ın GUI'sinde yük testi çalıştırmak, aynı anda VisualVM ekleyerek, heap dump kaydederek ve 30 tarayıcı sekmesini açık tutarak bir JVM üzerinde performa
JMeter'ın GUI'sinde yük testi çalıştırmak, aynı anda VisualVM ekleyerek, heap dump kaydederek ve 30 tarayıcı sekmesini açık tutarak bir JVM üzerinde performans kıyaslaması yapmak gibidir — ölçüm aracının kendisi en büyük gürültü kaynağına dönüşür. Non-GUI modu, tüm Swing render katmanını soyar ve mevcut tüm thread'leri ile belleği yük üretmeye adar; işte bu yüzden production kalitesindeki testler her zaman komut satırından headless çalışmalıdır. Peki neden birden fazla makineye dağıtılmış test yapıya daha da ileriye gidilir? Çünkü tek bir JMeter controller node, 4 çekirdekli bir makinede yaklaşık 300–500 aktif thread'e kadar güvenilir biçimde hizmet verebilir — bunun ötesinde kendi scheduler'ı zamanlama tutarsızlıkları yaratmaya başlar. Hedef 5.000 eş zamanlı kullanıcıysa, her biri toplam yükün bir bölümünü üreten ve tek bir controller tarafından koordine edilen birden fazla agent makinesine ihtiyaç vardır. Java concurrency terimleriyle düşününce: tek bir ThreadPoolExecutor'ı, worker'ların farklı fiziksel sunucularda yaşadığı bir fork/join havuzuyla değiştirmek gibidir. Junior ve senior mühendisleri birbirinden ayıran ileri seviye QA becerisi ise şudur: Regular Expression Extractor veya JSON Extractor ile dinamik veri çıkarma — bu araçlar CSRF token, session ID, OAuth kodu gibi değerleri bir yanıttan yakalayıp bir sonraki isteğe otomatik olarak enjekte eder. Bu olmadan 500 kullanıcıyı doğrulayan bir test, her sonraki çağrı eski veya boş bir auth token taşıdığı için ilk istekten sonra sessizce başarısız olur.
Non-GUI Modu (CLI) — Gerçek Testler İçin
Yük testlerini asla JMeter GUI'sinde çalıştırma. GUI ekstra CPU ve bellek tüketir, bu da test sonuçlarını etkiler. Gerçek performans testleri için komut satırını (Non-GUI modu) kullan.
-n -t -l -e -o Bayrakları Bir Load Testinin Hangi Aşamasını Kontrol Eder?
-n GUI'yi TAMAMEN devre dışı bırakır…
`-n` bayrağı Swing arayüzünü TAMAMEN devre dışı bırakır — TÜM CPU/bellek yük ÜRETMEYE ayrılır, ölçüm aracının KENDİSİ gürültü KATMAZ.
-t HANGİ test planının çalışacağını…
`-t my_test.jmx`, GUI'de İNŞA ettiğin test planını İŞARET eder — CLI bu dosyayı okuyup AYNEN GUI'deki gibi ÇALIŞTIRIR.
-l HAM sonuçları dosyaya YAZAR…
`-l results.jtl`, her tek isteğin HAM sonucunu (yanıt süresi, status code) bir dosyaya YAZAR — bu, SONRAKİ analiz için TEMEL veridir.
-e -o HAM veriyi görsel bir DASHBOARD'a…
`-e -o ./report`, o HAM `.jtl` dosyasını test BİTTİKTEN sonra etkileşimli bir HTML dashboard'a ÇEVİRİR — `-o` klasörü BOŞ olmalıdır.
CLI'dan -J ile Geçilen Değer, GUI'deki Değeri Neden Ezer?
User Defined Variables VARSAYILAN değer…