Yazılım Performans Testi ile JMeter: İşlevleri ve Faydaları
Merhabalar,
Bu yazımda performans testine başlamadan önce öğrenilmesi gereken bilgileri sizinle paylaşacağım. Başlıca performans testi nedir, nasıl yapılır gibi soruların cevabını içermektedir. Ayrıca yazıda JMeter adlı performans test aracının tanımı, avantajları ve faydaları hakkında bilgiler bulunmaktadır.
Performans Testi: Bir uygulumanın kararlılığının, hızının ve yanıt verebilirliğinin belirli bir iş yükü altında nasıl dayanacağını belirleyen işlevsel olmayan bir yazılım test tekniğidir. Performans testinin hedefleri, uygulama çıktısını , işlem hızını, veri aktarım hızını, ağ bant genişliği kullanımını, maksimum eş zamanlı kullanıcılarını, bellek kullanımını ve komut yanıt sürelerini değerlendirmeyi içerir.
Performans Testi Neden Yapılır?
- Uygulamanın performans gereksinimlerini karşılayıp karşılamadığını belirlemek için (Kabul edilebilirlik)
- Bir yazılım satıcısı tarafından iddia edilen performans düzeylerinin gerçek olup olmadığını belirlemek
- İki veya daha fazla sistemi karşılaştırmak ve en iyi performansı göstereni belirlemek
Performans Testi Türleri
- Capacity Testing : Performans kabul edilebilir seviyelerin altına düşmeden önce sistemin kaç kullanıcıyı kaldırabileceğini test eder. Sistemin kapasitesi test edilerek ölçeklenebilirliğini ve gelecekteki kullanıcı tabanı büyümesi açısından sorunları tahmin etmesine yardımcı olur. Örnek olarak çok sayıda eş zamanlı kullanıcının bir web sitesine yönlenmesi ve işlem yapmaya çalışması verilebilir.
- Load Testing : Sistemin gerekli sayıda kullanıcıyı işleyebileceğini ve yine de yüksek performans seviyesinde çalışabilirliğini test eder. Performanstaki günlük sorunların çıkmasını engeller. Bir kullanının çok sayıda dosya indirmeye çalışması veya içeriğinde çok fazla veri içeren bir raporu indirmeye çalışması örnek olarak verilebilir.
- Volume Testing : Yazılımın herhangi bir bilgiyi bozmadan, yavaşlatmadan aynı anda veri işleyip işleyemeyecğini kontrol eder. Bir dizi ve film platformunda video indirirken doğru videoyu herhangi bir bilgiyi bozmadan indirebilmesi örnek olarak verilebilir.
- Stress Testing : Beklentileri fazlasıyla aşan sayıda kullanıcıyı simüle ederek yazılımın kasıtlı olarak bozulmasını sağlamak. Bir web sitesine ani aktif kullanıcı artışlarını ve kaynak tükenmesini taklit etmek örnek olarak verilebilir.
- Soak Testing : Yazılımın uzun süreli yoğun trafiği tolere etme yeteneğini kontrol eder. Bir kullanıcının bir işlem yaparken saatlerce web sitesinde oturumunun açık kalması ve web sitesinin, veri tabanının vs. nasıl davranacağını test etmek örnek olarak verilebilir.
Yaygın Performans Sorunları
- Long Load Time: Kabul edilebilir bir zaman aralığında yüklenme sorunu
- Poor Response Time: Long Load Time’dan farkı uyguluma yüklense bile uygulama içindeki geçiş sürelerinin de uzun olması
- Poor Scalability: Sistemin, ani bir kullanıcı akışını kaldırabilecek bir altyapıya sahip olmaması
- Bottlenecking: Sistemin işlemci gücünün yetersiz kullanılması. Örneğin CPU, işlemci, hafıza veya disk kullanımının 100% kullanılması gerektiği durumlarda ek görevleri çalıştıracak bellek kalmadığı anlamına geliyor.
PERFORMANS TEST SÜRECİ
- IDENTIFY TEST ENVIRONMENT: Mevcut donanım, yazılım, ağ yapılandırmalar ve araçları belirlemek. Test ekibinin testi tasarlamasına ve performans testi zorluklarının erkenden belirlemesine olanak sağlar.
- IDENTIFY PERFORMANCE ACCTEPTANCE CRITERIA: Performans testi için başarı kabul kriterlerinin belirlenmesi.
- PLAN AND DESIGN TEST: Kullanıcı değişkenliğini, test evrilerini ve ehdefleri tanımlayan senaryoların yazılması
- CONFIGURE TEST ENVIRONMENT: Test ortamının yapılandırılması ve gerekli araçların hazırlanması
- IMPLEMENT TEST DESIGNS: Testlerin geliştirilmesi
- EXECUTE TESTS: Testlerin yürütülmesi
- ANALYSE, REPORT AND RETEST: Analiz edildikten sonra bulguların paylaşılması ve tekrar test edilmesi
JMETER
Jmeter uygulaması, performans ölçmek için tasarlanmış %100 Java temelli olan açık kaynaklı bir yazılımdır.
Jmeter ile neler yapılabilir?
Hem statik hem dinamik kaynaklarda, Web dinamik uygulamalarında performansı test etmek için kullanılabilir.
Sistemin gücünü test etmek veya farklı yük türleri altında genel performansını analiz etmek için bir sunucu, sunucu grubu, ağ veya nesne üzerindeki ağır bir yükü simüle etmek için kullanılabilir.
Birçok farklı uygulama, sunucu , protokol türünü yükleyebilme ve performans testi yapabilme (Web HTTP/HTTPS, Soap-Rest Web Servisleri)
Hızlı test planı kaydına, derlemeye ve hata ayıklamaya izin veren tam özellikli test IDE’si
Eksiksiz ve sunulmaya hazır bir dinamik HTML raporu
Jmeter avantajları
- Open Source License: Ücretsiz açık kaynak
- Friendly GUI: Kolay kullanım
- Platform Independent : Başka bir programa ihtiyaç duymaz
- Full multi-threading framework: İş parçacağı grubu tarafından eşzamanlı örneklenmesine izin veriliyor
- Visualize Test Result: Test sonuclarının görselleştirilmesi
- Easy installation: Kolay kurulum
- Highly extensible: Geliştirilebilir, eklentiler eklenebilir
- Unlimetted testing capabilities: Çoklu test stratejisini sağlar
- Support multi protocol: Çoklu protokol desteği
Bu yazımın sonuna geldik. Umarım sizler için faydalı bir içerik olmuştur. Sonraki yazılarda görüşmek üzere… :)