Kısa cevap: yük testi, performans testinin bir türüdür
Performans testi, bir yazılımın hız, ölçeklenebilirlik ve kararlılık açısından nasıl davrandığını ölçen testlerin genel adıdır. Yük testi ise bu ailenin bir üyesidir ve sistemin beklenen kullanıcı veya işlem yükü altında hedeflenen yanıt sürelerini koruyup korumadığını ölçer. Yani her yük testi bir performans testidir, ama her performans testi yük testi değildir.
Performans testi türleri nelerdir?
| Test türü | Sorduğu soru | Örnek senaryo |
|---|---|---|
| Yük testi (load) | Beklenen trafikte sistem hedeflenen hızda çalışıyor mu? | Normal bir iş gününün yoğun saatindeki kullanıcı sayısı |
| Stres testi (stress) | Sistem nerede kırılıyor ve kırıldıktan sonra nasıl toparlanıyor? | Kullanıcı sayısını hata oranı yükselene kadar artırmak |
| Ani yük testi (spike) | Trafik birden fırladığında ne oluyor? | Kampanya başlangıcı, TV reklamı, bildirim gönderimi |
| Dayanıklılık testi (soak / endurance) | Uzun süre yük altında bellek sızıntısı veya yavaşlama var mı? | Orta seviye yükü 8-24 saat boyunca sürdürmek |
| Ölçeklenebilirlik testi | Kaynak eklendikçe kapasite orantılı artıyor mu? | Sunucu sayısını artırıp işlem hacmini karşılaştırmak |
Hangi metrikler izlenir?
- Yanıt süresi (p95 / p99): Ortalama yanıltıcı olabilir; isteklerin yüzde 95'inin veya 99'unun hangi sürenin altında tamamlandığına bakılır.
- İşlem hacmi (throughput): Saniyede işlenen istek veya işlem sayısı.
- Hata oranı: Yük arttıkça başarısız isteklerin oranı.
- Kaynak kullanımı: CPU, bellek, disk, veritabanı bağlantı havuzu ve ağ.
- Eşzamanlı kullanıcı: Sistemin hedef performansı koruyarak taşıyabildiği aktif kullanıcı sayısı.
Hangi araçlar kullanılır?
Yaygın açık kaynak araçlar arasında Apache JMeter, k6, Gatling ve Locust bulunur. Araç seçiminden daha önemli olan, senaryoların gerçek kullanıcı davranışını yansıtmasıdır: yalnızca ana sayfayı değil, arama, sepete ekleme, ödeme ve giriş gibi kritik akışları içermelidir.
Test ne zaman yapılmalı?
- Büyük kampanya, indirim günü veya lansmandan önce,
- Altyapı değişikliği (bulut geçişi, veritabanı güncellemesi) sonrasında,
- Önemli bir sürüm canlıya alınmadan önce, ideal olarak CI/CD sürecinin parçası olarak,
- Kullanıcılar yavaşlıktan şikayet etmeye başladığında, darboğazı bulmak için.
Sık yapılan hatalar
- Gerçekçi olmayan senaryo: Tüm sanal kullanıcıların aynı sayfayı aynı anda yenilemesi gerçek trafiği temsil etmez.
- Test ortamının farklı olması: Canlıdan çok küçük bir ortamda alınan sonuçlar doğrudan kapasite planına çevrilemez.
- Yalnızca ortalamaya bakmak: Ortalama yanıt süresi iyi görünürken kullanıcıların bir kısmı çok uzun bekliyor olabilir.
- Sonuçları aksiyona çevirmemek: Test, darboğazın kod mu, veritabanı mı, altyapı mı olduğunu gösteren bir raporla bitmelidir.
Sonuç
"Yük testi mi, performans testi mi?" sorusu aslında "hangi riski ölçmek istiyorum?" sorusudur. Beklenen trafiği karşılayıp karşılamadığınızı merak ediyorsanız yük testi, sınırlarınızı ve toparlanma davranışınızı merak ediyorsanız stres ve ani yük testleri gerekir. Kampanyalardan önce bu testleri planlamak, en çok satış yapacağınız anda yaşanacak kesintilerin önüne geçer.