Bu bölümde performans testini, neden buna ihtiyacımız olduğunu, performans testi türlerini ve performans test sürecini öğreneceğiz.
Bu bölümde anlayacağımız konular şunlardır:
Performans testi nedir?
Fonksiyonel olmayan testlerin en önemli parçasıdır.
Bir uygulamanın davranışını bir miktar yük uygulayarak kontrol etmeye performans testi denir.
Genellikle bu test, sunucunun kullanıcının isteğine ne kadar hızlı yanıt verdiğini tanımlar.
Uygulamada performans testi yaparken aşağıdaki gibi çeşitli faktörlere odaklanacağız: Tepki süresi, Yük ve Kararlılık uygulamanın.
Tepki Süresi: Yanıt süresi, sunucunun istemcinin isteğine yanıt vermesi için geçen süredir.
Yük: Burada Yük şu anlama gelir: N-numarası Uygulamayı aynı anda kullanan veya isteği sunucuya aynı anda gönderen kullanıcıların sayısı.
İstikrar: Kararlılık faktörü için, N sayıda kullanıcının uygulamayı belirli bir süre boyunca aynı anda kullanması durumunda bunu söyleyebiliriz.
Performans testini ne zaman kullanırız?
Yazılım stabil hale gelip üretime geçtiğinde performans testleri yapacağız ve birden fazla kullanıcı aynı anda erişebilir, bu nedenle bazı performans sorunları yaşanabilir. Bu performans sorunlarını önlemek için test cihazı bir tur performans testi gerçekleştirir.
İşlevsel olmayan bir test olduğundan, bu her zaman performans testini kullandığımız anlamına gelmez, performans testini yalnızca uygulama işlevsel olarak kararlı olduğunda yaparız.
Not: Performans testi pahalı ve doğru sonuç sağlanamadığı için manuel olarak yapılamaz.
Performans Testi Türleri
Performans testi türleri şunlardır:
gimp filigranı kaldır
Tam olarak anlamanız için tek tek tartışalım. Yük, Stres, Ölçeklenebilirlik, Ve istikrar performans testi.
Yük testi
Yük testi, yük testi olarak bilinen istenen yükten daha az veya ona eşit bir miktar yük uygulayarak bir uygulamanın performansını kontrol etmek için kullanılır.
Örneğin: Aşağıdaki resimde, 1000 kullanıcı bunlar istenilen yük Müşteri tarafından verilen ve 3/saniye bu amaç yük testi yaparken elde etmek istediğimiz şey.
Stres testi
Stres testi, istenen yükten daha büyük bir yük uygulayarak bir uygulamanın davranışını kontrol eden testtir.
Örneğin: Yukarıdaki örneği alıp istenilen yükü 1000'den 1100 kullanıcıya çıkarırsak hedef 4/saniye olur. Bu senaryoda stres testi yapılırken, yük gerçek istenen yükten daha büyük (100 yukarı) olduğundan başarılı olacaktır.
Ölçeklenebilirlik Testi
Belirli ölçeklerde (kullanıcı sayısı) yükü artırarak veya azaltarak bir uygulamanın performansının kontrol edilmesine denir. ölçeklenebilirlik testi . Yukarıya doğru ölçeklenebilirlik ve aşağıya doğru ölçeklenebilirlik testlerine ölçeklenebilirlik testi denir.
Ölçeklenebilirlik testi aşağıdaki gibi iki bölüme ayrılmıştır:
Yukarıya doğru ölçeklenebilirlik testi
Nerede olduğumuzu test ediyor belirli bir ölçekte kullanıcı sayısını artırmak bir çarpışma noktasına ulaşana kadar. Bir uygulamanın maksimum kapasitesini bulmak için yukarıya doğru ölçeklenebilirlik testini kullanacağız.
Aşağıya doğru ölçeklenebilirlik testi
Aşağıya doğru ölçeklenebilirlik testi, yük testi geçilemediğinde kullanılır, ardından başlayın sayısını azaltmak. belirli bir aralıktaki kullanıcıların hedefe ulaşılana kadar. Böylece darboğazı (hata) tespit etmek kolaydır.
Stabilite Testi
Bir uygulamanın performansını kontrol ederek yükü belirli bir süre boyunca uygulamak olarak bilinir Stabilite Testi .
Performans testi örneği
Bir örnek verelim. İstenilen yükün 1000'den az veya 1000 kullanıcıya eşit olduğu bir uygulamanın davranışını test edin .
Aşağıdaki görselde şunu görebiliyoruz. 100 yukarı kontrol etmek için kullanıcılar sürekli olarak artırılır. maksimum yük buna aynı zamanda denir yukarıya doğru ölçeklenebilirlik testi .
1200 → 3,5sn: [istenen yükten az veya ona eşit değil, bu yüzden Hata ]
1300 → 4sn: [istenilen yükten az veya ona eşit değildir. yani, Hata ]
1400 → Çöktü
Not1: Hacim ve ıslatma testi bir tür testtir ancak performans testi değildir.
Hacim testi
Hacim testi, bir uygulamanın davranışını veri açısından çok büyük miktarda yük ekleyerek kontrol etmemize yardımcı olan testtir ve hacim testi olarak bilinir ve burada kullanıcı sayısından çok veri hızı sayısına odaklanacağız. .
Dijkstra
Not2:
Hacim bir kapasitedir, Yük ise bir miktardır, yani yük testi hayır anlamına gelir. Kullanıcı sayısı ve hacim testi veri miktarı anlamına gelir.
Islatma testi
Bu test türünde, ıslatma testi olarak bilinen, uzun süre destek vermeyen bir uygulamanın ortamdaki davranışını kontrol edeceğiz.
Genellikle, sunucunun veya ortamın destekleyici olmadığını bildiğimiz için ıslatma testi negatif bir test türüdür.
Performans test süreci
Performans testi şu nedenlerden dolayı manuel olarak yapılamaz:
- Çok fazla kaynağa ihtiyacımız var ve bu daha maliyetli bir yaklaşım haline geldi.
- Tepki süresini manuel olarak takip ettiğimizde doğruluk korunamaz.
Performans testi süreci aşağıdaki adımlarla tamamlanacaktır:
- Performans senaryolarını tanımlayın
- Performans testi komut dosyasını planlayın ve tasarlayın
- Test ortamını yapılandırın ve yükü dağıtın
- Test komut dosyalarını yürütün
- Sonuç
- Analiz sonucu
- Darboğazı Tanımlayın
- Testi yeniden çalıştır
Eğer bir performans sergilersek pozitif akış Performans testi sürecinin ardından aşağıdaki süreç izlenebilir:
Performans senaryolarını tanımlayın
Öncelikle aşağıdaki faktörlere dayanarak performans senaryolarını belirleyeceğiz:
En yaygın senaryolar: Bu, aşağıdaki gibi yaygın olarak kullanılan senaryolara dayalı olarak performans senaryolarını bulabileceğimiz anlamına gelir. Gmail uygulaması; gerçekleştireceğiz oturum açma, gelen kutusu, öğe gönderme, posta oluşturma ve oturumu kapatma .
En kritik senaryolar: Kritik senaryolar, Gmail uygulamasındaki iş benzeri uygulamalar için düzenli olarak kullanılan ve önemli olduğu anlamına gelir oturum açma, oluşturma, gelen kutusu ve oturumu kapatma .
Büyük veri işlemi: Elimizde çok büyük bir veri varsa, uygulamayı aynı anda kullanan n sayıda kullanıcı demektir.
Performans senaryolarını belirledikten sonra bir sonraki adıma geçeceğiz.
Performans testi komut dosyasını planlayın ve tasarlayın
Bu adımda Test Engineer Machine'e araçları yükleyip test sunucusuna erişeceğiz ve ardından test senaryolarına göre bazı scriptler yazıp aracı çalıştıracağız.
Senaryoyu yazmayı bitirdikten sonra bir sonraki adıma geçeceğiz.
Test ortamını yapılandırın ve yükü dağıtın
Test scriptlerini yazdıktan sonra çalıştırmadan önce test ortamını ayarlayacağız. Ayrıca araçları, diğer kaynakları yönetin ve yükü 'Kullanım Modeli'ne göre dağıtın veya süre ve kararlılıktan bahsedin.
Test komut dosyalarını yürütün
Yükü dağıtmayı bitirdikten sonra test komut dosyalarını yürüteceğiz, doğrulayacağız ve izleyeceğiz.
Sonuç
Test komut dosyalarını çalıştırdıktan sonra test sonucunu alacağız. Sonucun verilen yanıt süresi içinde hedefi karşılayıp karşılamadığını ve yanıt süresinin maksimum, ortalama ve minimum olabileceğini kontrol edin.
Yanıt gerekli yanıt süresini karşılamıyorsa, o zaman negatif akış aşağıdaki adımları nerede gerçekleştirecek:
Analiz sonucu
Öncelikle test sonucunun tepki süresine uyup uymadığını analiz edeceğiz.
Darboğazı Tanımlayın
Bundan sonra tespit edeceğiz darboğaz (hata veya performans sorunu ). Ve bu gibi yönlerden dolayı darboğaz meydana gelebilir. kod sorunu, donanım sorunu (sabit disk, RAM İşlemci), ağ sorunları, ve yazılım sorunu (işletim sistemi) . Ve darboğazı bulduktan sonra gerçekleştireceğiz ayarlama (düzeltme veya ayarlama) Bu darboğazı çözmek için.
Testi yeniden çalıştır
Darboğazları giderdikten sonra test komut dosyalarını yeniden çalıştırın ve sonucun gerekli hedefi karşılayıp karşılamadığını kontrol edin.
Sorun performans testinde ortaya çıkıyor
Uygulama üzerinde performans testi yapılırken bazı sorunlar ortaya çıkabilmektedir ve bu sorunlara aynı zamanda performans sorunu .
Java'da do ve while döngüsü
Performans sorunları aşağıdaki gibidir:
Tepki süresi sorunu
Yanıt süresi, sunucunun müşterinin isteğine ne kadar hızlı yanıt verdiği anlamına gelir. Kullanıcının isteği verilen yanıt süresi içinde tamamlanmazsa, kullanıcının ilgili yazılıma veya uygulamaya olan ilgisini kaybetmesi mümkün olabilir. Bu nedenle uygulama veya yazılımın, kullanıcının isteklerine hızlı bir şekilde yanıt verebilmesi için mükemmel bir yanıt süresine sahip olması gerekir.
Ölçeklenebilirlik sorunu
Ölçeklenebilirlik sorunları, uygulama n sayıda kullanıcıyı ve beklenen kullanıcı isteklerini aynı anda alamadığında ortaya çıkar. Bu yüzden yapacağız yukarıya doğru ölçeklenebilirlik testi (uygulamanın maksimum kapasitesini kontrol edin) ve aşağı doğru ölçeklenebilirlik testi (beklenen zaman gerçek zamanla eşleşmediğinde).
Darboğaz
Darboğaz, uygulamanın tek bir bileşenle sınırlandırılması ve sistem performansı üzerinde kötü bir etki yaratması durumunda ortaya çıkan hatanın resmi olmayan adıdır.
Darboğazın ana nedenleri şunlardır: yazılım sorunları (işletim sistemiyle ilgili sorunlar), donanım sorunları (sabit disk, RAM ve işlemciyle ilgili sorunlar), Ve kodlama sorunu, vesaire.
En yaygın performans darboğazları şunlardır:
- Bellek kullanımı
- Disk kullanımı
- CPU kullanımı
- İşletim Sistemi sınırlamaları
- Ağ kullanımı
Hız sorunları
Uygulama üzerinde performans testi yaptığımızda kullanıcının ilgi ve dikkatini çekmek için uygulamanın daha hızlı olması gerekir çünkü uygulamanın hızı yavaşsa kullanıcının uygulamaya olan ilgisi kaybolabilir.
Performans testi araçları
Piyasada, bazıları ticari araçlar ve açık kaynak araçlar olan çeşitli türde performans test araçlarımız bulunmaktadır.
Ticari araçlar: LoadRunner[HP], WebLOAD, NeoLoad
Açık kaynak aracı: JMeter
Yük Çalıştırıcısı
Kapsamlı protokol yelpazesi, teknoloji sayısı ve uygulama ortamları için performans testini desteklemek için kullanılan en güçlü performans testi araçlarından biridir.
Performans sorunlarının en yaygın nedenlerini hızlı bir şekilde tanımlar. Ayrıca uygulamanın ölçeklenebilirliğini ve kapasitesini de doğru bir şekilde tahmin edin.
10/100
JMeter
Apache JMeter yazılımı, fonksiyonel test davranışını yüklemek ve performansı ölçmek için tasarlanmış tamamen bir Java uygulaması olan açık kaynaklı bir araçtır.
Genel olarak Web Uygulamalarını test etmek için tasarlandı ancak artık diğer test işlevlerini de kapsayacak şekilde genişletildi.
Apache JMeter, hem statik hem de dinamik kaynakların ve dinamik web uygulamalarının performansını test etmek için kullanılır.
Bir sunucu, ağ veya nesne üzerindeki ağır yükü yeniden oluşturmak, sunucu grubunun gücünü test etmek veya farklı yük türleri altında genel performansı analiz etmek için kullanılabilir.
WebYÜKLEME
Yük testi, performans testi ve stres testi web uygulamalarını test etmek için kullanılan WebLOAD test aracı.
WebLOAD aracı, web ve mobil uygulamaların doğrulanması için performansı, ölçeklenebilirliği ve bütünlüğü tek bir süreç olarak birleştirir.
NeoYükleme
Neotys, NeoLoad adı verilen bir test aracı geliştirir. NeoLoad, performans testi senaryolarını test etmek için kullanılır. NeoLoad'un yardımıyla web ve mobil uygulama geliştirme sürecindeki darboğaz alanlarını bulabiliriz.
NeoLoad test aracı, geleneksel araçlarla karşılaştırıldığında daha hızlıdır.
Bunların dışında başka araçlar da var. Elektrik yükü, web stres aracı, LoadUI Pro, StresStimulus, LoadView, LoadNinja ve RedLine13, yazılımın veya bir uygulamanın performansını test etmeye yardımcı olur.