Ölçeklenebilirlik Testi Nedir? Örnekle Öğrenin
⚡ Akıllı Özet
Ölçeklenebilirlik Testi, kullanıcı yükü, veri hacmi veya işlem hızı arttığında veya azaldığında bir uygulamanın nasıl davrandığını ölçerek, performansın ölçeklenmeyi durdurduğu noktayı ve sorumlu darboğazı tam olarak ortaya çıkarır.
Ölçeklenebilirlik Testi Nedir?
Ölçeklenebilirlik Testi Ölçeklenebilirlik testi, kullanıcı isteklerinin sayısı artırıldığında veya azaltıldığında bir sistemin veya ağın performansını ölçen, işlevsel olmayan bir test yöntemidir. Ölçeklenebilirlik testinin amacı, sistemin öngörülen kullanıcı trafiği, veri hacmi ve işlem sıklığındaki artışı karşılayabileceğinden emin olmaktır. Sistemin artan talebi karşılayabilme yeteneğini test eder.
Ölçeklenebilirlik Testi, bir alt türüdür. performans testiDolayısıyla, bir uygulamanın daha büyük bir sisteme dağıtıldığında veya aşırı yük altında çalıştırıldığında gösterdiği davranışa odaklanır. Yazılım MühendisliğiÖlçeklenebilirlik testi, bir uygulamanın ölçeklenebilirliğinin durduğu noktayı ölçer ve bunun ardındaki nedeni belirler.
Ölçeklenebilirlik Testi Neden Yapılır?
Kapasite sorunları nadiren fonksiyonel testler sırasında ortaya çıkar. Bunlar genellikle yılın en yoğun işlem gününde, bir pazarlama kampanyası başladığında veya iki yıl boyunca sessizce büyüyen bir veri kümesi nihayet her sorguyu yavaşlattığında ortaya çıkar. Ölçeklenebilirlik Testi, bu sınırları öncelikle kontrollü bir ortamda ortaya çıkarır. Özellikle şu konularda size yardımcı olur:
- İş yükü arttıkça uygulamanın performansının nasıl ölçeklendiğini ve bu eğrinin nerede düzleştiğini belirleyin.
- Yanıt sürelerinin kabul edilemez hale gelmesinden önce web uygulaması için eşzamanlı kullanıcı sınırını belirleyin.
- Yük altında istemci tarafındaki performans düşüşünü ve son kullanıcı deneyimini, örneğin yavaş ekran yüklemesini belirleyin.
- Sunucu tarafındaki sağlamlığı ve bozulmayı, CPU doygunluğunu, bellek sızıntılarını ve bağlantı havuzu tükenmesini de içerecek şekilde belirleyin.
Bu ilişkiyi bir eğri olarak hayal etmek en kolayıdır: Kaynak doygunluğa ulaşana kadar işlem hacmi eklenen yükle birlikte artar, bundan sonra ek kullanıcılar yalnızca kuyruğu uzatır.
Ölçeklenebilirlik Testi Türleri
Ölçeklenebilirlik tek bir özellik değildir, bu nedenle bir test planı genellikle birden fazla boyutu kapsar. Aşağıdaki dört tür, çoğu ekibin ölçtüğü türlerdir ve ilk ikisi test ortamının şeklini belirler.
| Menşei | Ölçeklendirilmiş olan nedir? | Testin kanıtladığı şey |
|---|---|---|
| Dikey ölçeklenebilirlik (ölçek büyütme) | Tek bir sunucuya eklenen CPU, bellek veya depolama alanı | Yükseltilmiş bir makinenin ne kadar ek yükü absorbe ettiği ve tek düğümlü tavanın nerede olduğu |
| Yatay ölçeklenebilirlik (ölçeklendirme) | Yük dengeleyicinin arkasında bulunan ek sunucular, konteynerler veya düğümler | Veri aktarım hızının eklenen düğüm sayısıyla yaklaşık olarak orantılı olarak artıp artmadığı veya paylaşılan kaynakların bunu sınırlayıp sınırlamadığı sorusu gündeme geliyor. |
| İşlevsel ölçeklenebilirlik | Yeni özellikler, modüller veya hizmetler | Eklenen işlevselliğin mevcut işlemleri bozmadan entegre edilip edilemeyeceği |
| Yönetimsel ölçeklenebilirlik | Yönetilecek kullanıcılar, kiracılar, ekipler veya ortamlar | Organizasyon büyüdükçe, işe alım, yetkilendirme ve izleme süreçlerinin işlerliğini koruyup koruyamayacağı sorusu gündeme geliyor. |
Dikey ölçeklendirme daha basittir çünkü mimari nadiren değişir, ancak tek bir makinenin her zaman bir sınırı vardır. Yatay ölçeklendirme bu sınırı ortadan kaldırır ve hata toleransını artırır, ancak ağ gecikmesi, veri tutarlılığı ve koordinasyon yükü gibi dezavantajları da beraberinde getirir; testin bunların hepsini varsaymak yerine ölçmesi gerekir.
Ölçeklenebilirlik Testinde Neler Test Edilmeli?
Ölçeklenebilirlik, izlenimlere değil, ölçümlere göre değerlendirilir. Sadece nihai sayı değil, eğilimin de görülebilmesi için her yükleme adımında aşağıdaki özellikleri kaydedin.
| özellik | Sana ne anlatıyor? |
|---|---|
| Tepki Süresi | Kullanıcı isteği ile sistem yanıtı arasındaki süre; eşzamanlılık arttıkça sabit kalmalıdır. |
| Ekran geçişi | Yük altında bir sayfanın veya görünümün diğerine ne kadar hızlı geçiş yaptığı. |
| çıktı | Birim zaman başına işlenen istek sayısı; bir plato, ölçeklenebilirlik sınırını gösterir. |
| Zaman ölçümleri | Oturum süresi, yeniden başlatma süresi, yazdırma süresi, işlem süresi ve görev yürütme süresi |
| Kullanıcı sayısına göre performans | Eş zamanlı kullanıcı sayısı kademeli olarak arttıkça her bir ölçütün nasıl değiştiği |
| Talep oranları | Saniyede istek sayısı, saniyede işlem sayısı ve saniyede isabet sayısı |
| Ağ kullanımı | Katmanlar arası tüketilen bant genişliği ve paket gecikmesi |
| CPU ve bellek kullanımı | İşlem başına kaynak maliyeti; sürekli artan bir rakam genellikle bir sızıntıya işaret eder. |
| Web sunucusu sayaçları | Saniye başına istek ve yanıt sayısı, kuyruk derinliği ve reddedilen bağlantılar |
| Yük altında performans | En yüksek noktada tüm ölçümler birlikte okunduğunda ortaya çıkan birleşik davranış. |
Ölçeklenebilirlik Testi için Test Stratejisi
Ölçeklenebilirlik Testi için test stratejisi, test edilen uygulamanın türüne bağlı olarak farklılık gösterir. Bir uygulama bir uygulamaya erişiyorsa... veritabanıTest parametreleri arasında, kullanıcı sayısına göre veritabanının boyutu ve benzeri unsurlar yer alacaktır.
Ölçeklenebilirlik Testinin Önkoşulları
- Yük Dağıtımı Yeteneği — Yük testi aracının, yükün birden fazla makineden oluşturulmasına ve merkezi bir noktadan kontrol edilmesine olanak sağlayıp sağlamadığını kontrol edin.
- OperaZamanlama Sistemi — Neleri kontrol edin işletim sistemleri Yük oluşturma aracıları ve yük testi ana sunucusu şu koşullar altında çalışır.
- İşlemci — Sanal kullanıcı aracısı ve yük testi ana sunucusu için hangi tür CPU'nun gerekli olduğunu kontrol edin.
- Bellek — Sanal kullanıcı aracısı ve yük testi yöneticisi için ne kadar belleğin yeterli olacağını kontrol edin.
- Test ortamı — Şunu kontrol edin: test ortamı Üretim sürecini sonuçların aktarılabileceği kadar yakından yansıtıyor.
Ölçeklenebilirlik Testi nasıl yapılır
- Uygulama yaşam döngüsü boyunca ölçeklenebilirlik testlerinin yürütülmesi için tekrarlanabilir bir süreç tanımlayın.
- Ölçeklenebilirlik kriterlerini belirleyin
- Yük testini çalıştırmak için gereken yazılım araçlarının kısa listesi
- Test ortamını ayarlayın ve ölçeklenebilirlik testlerini yürütmek için gereken donanımı yapılandırın
- Test senaryolarını ve ölçeklenebilirlik testlerini planlayın.
- Sanal kullanıcı komut dosyasını oluşturun ve doğrulayın.
- Yük testi senaryolarını oluşturun ve doğrulayın
- Testleri yürütün
- Sonuçları değerlendirin
- Gerekli raporları oluşturun
Ölçeklenebilirlik Test Planı
Testleri oluşturmadan önce, ayrıntılı bir test planı geliştirin. Bu, testin uygulama gereksinimlerine uygun olmasını sağlamak için önemli bir adımdır.
İyi tanımlanmış bir web sitesi oluşturmak için gereken nitelikler şunlardır: Test planı Ölçeklenebilirlik Testi için.
- Komut Dosyaları İçin AdımlarTest senaryosu, kullanıcının gerçekleştireceği eylemleri tam olarak belirleyen ayrıntılı adımlar içermelidir.
- Çalışma Zamanı VerileriTest planı, uygulamayla etkileşim kurmak için gereken tüm çalışma zamanı verilerini belirlemelidir.
- Veriye Dayalı TestlerEğer komut dosyaları çalışma zamanında değişen verilere ihtiyaç duyuyorsa, bu verilere ihtiyaç duyan tüm alanları anlamanız gerekir.
Ölçeklenebilirlik Testi Örneği
Sezonluk indirim döneminde aynı anda 2,000 alışverişçi bekleyen bir çevrimiçi mağazayı ele alalım. Ekip öncelikle bir geçme kriteri üzerinde anlaşır: ödeme işlemi, kullanıcıların %95'i için üç saniyeden kısa sürede tamamlanmalı ve hata oranı %1'in altında olmalıdır.
Test daha sonra aynı göz atma-arama-sepet-ödeme komut dosyasını 250, 500, 1,000, 1,500 ve 2,000 sanal kullanıcıda çalıştırır. Yanıt süresi 1,000 kullanıcıya kadar yaklaşık iki saniye civarında kalırken, 1,500 kullanıcıda 2.8 saniyeye, 2,000 kullanıcıda ise dokuz saniyeye çıkar; bu sırada veritabanı CPU kullanımı %98'de kalır. Dolayısıyla ölçeklenebilirlik sınırı yaklaşık 1,500 kullanıcıdır ve darboğaz, ekibin eklemeyi planladığı uygulama sunucuları değil, veritabanı katmanıdır.
Ölçeklenebilirlik Test Araçları
Ölçeklenebilirlik Testi, aynı anda birden fazla makineden yük oluşturabilen ve sonuçları merkezi olarak raporlayabilen bir araca ihtiyaç duyar. Seçim genellikle ekibin kullandığı ana dile ve test edilen protokollere göre yapılır.
| araç | scripting | En uygun |
|---|---|---|
| Apache JMeter | GUI ve XML test planları, Java merkezli | JDBC, JMS, LDAP ve SOAP dahil olmak üzere geniş protokol kapsamı |
| Grafana k6 | JavaSenaryo veya TypeScript | API ve mikroservis testleri, bir CI/CD işlem hattına entegre edilmiştir. |
| mitralyöz | JavaKotlin veya Scala DSL | Enjektör başına yüksek sanal kullanıcı sayısı ve ayrıntılı HTML raporları. |
| keçiboynuzu | Sade Python | Python İstemciyi HTTP'nin ötesine genişletmesi gereken ekipler |
| LoadRunner | VuGen'de kaydedilen C benzeri komut dosyaları | Eski ve paket uygulamalara sahip büyük kurumsal sistemler |
Bulut tabanlı çalıştırıcılar gibi BlazeMeterLoadView ve Gatling Enterprise, bu motorların birçoğunun üzerinde yer alır ve bir testin on binlerce sanal kullanıcıya veya birden fazla coğrafi bölgeden gelen trafiğe ihtiyaç duyması durumunda dikkate alınmaya değerdir. Kategoriye ilişkin daha geniş bir inceleme, kılavuzda mevcuttur. performans test araçları.
Ölçeklenebilirlik Testinde Karşılaşılan Zorluklar ve En İyi Uygulamalar
En hayal kırıklığı yaratan ölçeklenebilirlik sonuçları tracUygulamaya değil, test ortamına geri dönelim. Tekrarlayan sorunlar bunlar ve bu sorunların ortaya çıkmasını engelleyen alışkanlıklar da bunlar.
Ortak zorluklar
- Küçük boyutlu ortamlar — Üretim ortamındaki belleğin yarısına sahip bir test düzeneği, üretim ortamında bulunmayan bir darboğaz tespit ediyor.
- Gerçekçi olmayan iş yükü modelleri — Düşünme süresi veya veri varyasyonu içermeyen komut dosyaları, gerçek kullanıcıların fark etmeyeceği önbelleklere erişir.
- Gürültülü sonuçlar — Otomatik ölçeklendirme, çöp toplama ve paylaşımlı bulut donanımı, iki özdeş çalıştırmanın sonuçlarının farklı olmasına neden olur.
- İnce gözlemlenebilirlik — Sunucu tarafı ölçümleri olmadan, yavaş bir sonuç bir şeyin bozulduğunu gösterir, ancak neyin bozulduğunu göstermez.
- Ücret — Çok yüksek eşzamanlılık oluşturmak, kendine ait bir yük oluşturucu filosuna ihtiyaç duyar ve bu da bütçenin yetersiz kalmasına kolayca yol açabilir.
En iyi uygulamalar
- İlk çalıştırmadan önce, yanıt süresi yüzdesi ve hata oranı tavanı gibi geçme kriterleri üzerinde anlaşın.
- Yükü planlı adımlarla artırın ve sistemin dengeye ulaşması için her adımı yeterince uzun süre koruyun.
- Önbelleklemenin sonuçları olduğundan daha iyi göstermemesi için test verilerini her sanal kullanıcı için farklılaştırın.
- İstemci tarafındaki verilerin yanı sıra uygulama, veritabanı ve altyapı metriklerini de toplayın.
- Test komut dosyalarını sürüm kontrolünde saklayın ve her derlemede kısa bir ölçeklenebilirlik kontrolü, ardından sürümden önce tam bir test çalıştırın.
- Tek bir raporu kendi başına değerlendirmek yerine, farklı sürümler arasındaki eğilimleri karşılaştırın.
Ölçeklenebilirlik Testi ve Yük Testi Arasındaki Fark
İkisi de yük uyguladığı için sıklıkla karıştırılır. Aralarındaki fark, her birinin yanıtladığı soruda yatmaktadır: Ölçeklenebilirlik Testi, sistemin ne kadar büyüyebileceğini sorarken, yük testi Beklenen yükü kaldırıp kaldıramayacağını soruyor.
| Temel | Ölçeklenebilirlik Testi | Yük Testi |
|---|---|---|
| odak | Bu, artan bir ihtiyacı karşılamak için sistemin boyutunda veya hacminde değişiklikler yapıldığında web sitelerinizin, yazılımlarınızın, donanımlarınızın ve uygulamalarınızın performansına odaklanır. | Yük testi, sistemin yanıt süresinin hangi noktada yetersiz kaldığını belirlemek için bir uygulamayı ağır yük altında test etmeye odaklanır. |
| Yük deseni | Yük kademeli olarak artırılır ve kademeler arasında kaynaklar eklenebilir. | Yük, belirli bir süre boyunca beklenen en yüksek seviyede tutulur. |
| Soru cevap | Bu sistem ne kadar büyüyebilir ve sınırlarını neler belirliyor? | Bu sistem bugün üzerinde anlaşılan hedeflere ulaşıyor mu? |
| Tipik çıktı | Ölçeklenebilirlik sınırı, darboğaz ve kapasite planı | Yanıt süresi ve işlem hızı hedeflerine göre geçme veya kalma durumu. |
İkisi de altında oturuyor. işlevsel olmayan test şemsiyenin yanında stres testi, sivri uç testi, dayanıklılık testi hem de hacim testiVe olgun bir performans stratejisi genellikle aynı komut dosyalarına karşı bunlardan birkaçını çalıştırır.

