Yük testleri için temelleri ayarlama
- 5 dakika
Yük testlerini ve eşik değerlerini tanımladığınıza göre şimdi bunları kullanarak temellerinizi oluşturalım.
Temel, bir testin başarısız mı yoksa başarılı mı olduğunu değerlendirmek için kullandığınız ölçümler için bir ölçüt kümesidir. Örneğin, ölçütleriniz şöyle olabilir:
- Saniye başına ortalama istek sayısı.
- Hata oranı.
- Maksimum yanıt süresi.
Yük testlerine yönelik temelleri ayarlamak için şunları yapmanız gerekir:
Tek tek kullanıcı akışları ve genel çözüm için temelleri ve test ölçütlerini tanımlayın.
Uygulamanın beklenen performansı sağlamaya devam ettiğini ve herhangi bir hata üretmediğini doğrulamak için normal çalıştırmaların eşiklerini ayarlayın.
Hata oranlarında beklenen ani artışları ve geçici olarak düşük performansı tolere eden kaos testleri için ayrı bir temel kullanın.
Bu etkinlik süreklidir ve düzenli olarak yapılması gerekir. Örneğin, yeni özellikler tanıttıktan veya hizmet SKU'larını değiştirdikten sonra temelleri gözden geçirmeniz gerekir.
Eşikleri değerlendirmek için Azure Yük Testi'ni kullanma
Geliştirme aşamasında bileşenlerin ve kaynak gereksinimlerinin performansı genellikle net olarak bilinmemektedir. Yük testleri, genel çözümün ve bileşenlerinin ölçeği genişletme davranışı da dahil olmak üzere beklenen performansı belirlemenize yardımcı olabilir. Ayrıca, temelinizi oluşturmak için bekleyebileceğiniz eşikleri belirlemenize de yardımcı olabilir.
Aşağıdaki soruları sorun ve düzenli olarak yeniden değerlendirin:
- Tek bir işlemin, kullanıcı akışının veya API çağrısının tamamlanması ne kadar sürer?
- Bir bileşen saniyede kaç istek, işlem ve eşzamanlı kullanıcı hizmet verebilir?
- Kaç kaynak tüketilir?
- 10, 50 ve 100 eşzamanlı kullanıcı temel altyapıyı ve arka uç hizmetini nasıl etkiler?
- Bileşenler ne zaman ölçeği daraltmalı ve genişletmelidir?
Yanıtlar testlere ve eşiklere yol açar. Saniye başına istek sayısı, yanıt süresi ve hata yüzdesi eşik değerleri için geçerli örneklerin tümüdir.
Ayrıntıları kaydettikten sonra, genel çözümün ve bileşenlerinin performansını tutarlı bir şekilde analiz etmek ve değerlendirmek için değerleri kullanın. Ayrıca beklenen performanstan kaynaklanan değişikliklerin ve kaymaların etkisini belirlemek için temeli kullanın.
Testleri çalıştırdığınızda, hatalı bileşen veya yük artışı gibi özel kullanım örnekleri için farklı gereksinimleriniz olabilir. Bu gibi durumlarda daha yüksek hata oranları veya saniye başına daha düşük istekler beklenebilir ve kabul edilebilir olabilir. Bu durumlara uyum sağlamak için ayarlanmış eşikler içeren ayrı bir temele sahip olabilirsiniz. Örneğin:
- Ölçeği genişletme işleminin beklendiği ve gerekli olduğu yüksek yük senaryoları. İşlem tamamlanana kadar geçici performans düşüşü olabilir.
- Sürekli doğrulama işlem hattının bir parçası olarak kaos denemeleri. Dayanıklılık önlemleri uygulamayı kendi kendine düzeltmeye veya başka bir bölgeye yük devretmeye başlayana kadar daha yüksek bir hata oranı beklenebilir.
Sisteminizin tanımlı eşiklere karşı nasıl performans sergilesini değerlendirmek için Azure Yük Testi'ni kullanın. Hizmetin yerleşik test ölçütleri özelliği vardır. Başka bir ifadeyle, yük testinin geçmesi gereken ölçütleri belirtebilirsiniz.
Aşağıdaki örnek ekran görüntüsünde gösterildiği gibi farklı temelleri uygulamak için test ölçütlerini kullanabilirsiniz.
Bu test ölçütlerini JSON'da belirtebilir ve API'yi kullanarak bunları yük testinize ekleyebilirsiniz. Bir örnek aşağıda verilmiştir:
[
{
"passFailMetrics": {
"<guid-1>": {
"clientmetric": "requests_per_sec",
"aggregate": "avg",
"condition": "<",
"value": 1200.0,
"actualValue": 0.0,
"result": null,
"action": "continue"
},
"<guid-2>": {
"clientmetric": "response_time_ms",
"aggregate": "avg",
"condition": ">",
"value": 75.0,
"actualValue": 0.0,
"action": "continue"
},
"<guid-3>": {
"clientmetric": "error",
"aggregate": "percentage",
"condition": ">",
"value": 0.0,
"actualValue": 0.0,
"action": "continue"
}
}
}
]
Sürekli doğrulamanın bir diğer önemli yönü de gerçek dünya sorunlarını simüle eden testler eklemektir. Sonraki ünitede doğrulama sürecinize kaos denemeleri eklemeyi öğreneceksiniz.