Tarihsel olarak, yazılımın performansı, ana işlevsel kısımdan sonra test edilmiştir — geliştiriciler ya manuel olarak senaryoları çalıştırmış ya da JMeter gibi araçlarla ölçümler yapmışlardır. DevOps ve CI/CD'ye geçişte, bu süreçlerin otomatikleştirilmesi ve her teslimat aşamasında metriklerin alınması ihtiyacı doğmuştur.
Sorunu zorlaştıran durum, yük otomasyonunun sadece hazır testlerin çalıştırılması değil, yük senaryolarının ince ayarını yapmak, kullanıcı profillerinin yeniden üretilmesi, gerçek ağların taklit edilmesi, gecikmenin dikkate alınması ve test donanımının sınırlaması gibi unsurlardır.
Modern çözüm, özel araçların (örneğin, Gatling, Locust, k6) entegrasyonu, kullanıcı profili ile parametreli senaryolar oluşturulması, performans testinin CI boru hatlarına entegre edilmesi, metriklerin otomatik olarak toplanması ve analiz edilmesi ve performans düşüşü durumunda alarm sistemlerinin kurulmasıdır.
Anahtar özellikler:
Yük otomasyonunun yalnızca üretim ortamında yapılmasının doğru olduğunu mu düşünüyorsunuz?
Hayır. Performans ve stres otomatik testleri, SLA'yı ihlal etmemek için özel sahne uygulamalarında/test ortamlarında gerçekleştirilebilir. Otomasyon, tam tersine, üretime çıkmadan önce tercih edilir.
Eğer yük otomasyon testleri başarılı olursa, gerçek kullanıcı deneyimi konusunda güvenilebilir mi?
Hayır — otomatik testler sadece ortalama bir görüntü sağlar. Gerçek kullanıcıların davranışları, ağ koşulları, kullanılan platformlar ve birebir taklit edilmesi zor diğer faktörlerden dolayı değişebilir.
Cevap süresi (response time) için yalnızca ortalama değerlere mi odaklanmalıyız?
Hayır. Persentili (örneğin %95, %99) dikkate almak son derece önemlidir, çünkü ortalamalar anormal değerlerden kayabilir ve uç değerler genellikle UX üzerinde en fazla etkiye sahiptir.
Bir şirket, yalnızca sisteme girişte performans otomasyon testlerini uygulamıştır: senaryolar 1000 giriş gerçekleştirmiş, ortalama yanıt süresini analiz etmiş ve sorunun çözüldüğünü düşünmüştür. İlk gerçek çalışmada büyük zaman aşımları yaşanmış — paralel "ağır" iş operasyonlarının hesaba katılmadığı ortaya çıkmıştır, API yük altında çöküyordu.
Artılar:
Eksiler:
Başka bir takım, yük profilinin üretimin izlenmesi esas alınarak oluşturulmuştur, ayrı senaryolar farklı cihazlar ve ağlardan zirve aktivitesini taklit etmiştir. Tüm sonuçlar otomatik olarak bir standarda karşı karşılaştırılmış, %5'ten fazla sapma alarm oluşturmuş ve yayımlanma durdurulmuştur.
Artılar:
Eksiler: