SlideShare a Scribd company logo
1 of 7
JMETER ile Web Uygulamalarında Yük,
Stress ve Performans Testi
Uygulamaların (web siteleri, web servisleri vb) gerçek kullanıcılar ile etkileşime geçmeden önce bazı
öngörülen performans değerlerine ulaşıp ulaşmadığını tespit etmek ve kullanılabilirlik sınırlarını belirlemek
için yapılan birtakım testler, yük, stress ve performans testi olarak adlandırılır.
Aralarında ufak farklılıklar olsa da bu testler, “uygulamam aynı anda kaç kullanıcı ile etkileşimde sorunsuz
şekilde hizmet verebiliyor” sorusunun cevabını bulmaktır.
Önemli olan diğer konu tüm bu hizmetin hangi altyapı imkanları ile verileceği.
Performans testleri, önceden belirlenen servis altyapı, kaynak ve imkanlar göz önünde bulundurularak
maksimum değeri elde etmek veya kabul edilen yani önceden belirlenen performans hedefi için nasıl bir
altyapıya ihtiyaç olduğunu belirlemek için de yapılır.
Bu servis altyapısı temel olarak;
-Bandwith miktarı
-Donanım (kaynak) miktarı
-Lisans ihtiyacı
Unsurlarından oluşmaktadır.
Bu süreçte gerçeğe yakın en doğru sonuçları almak için etkili bir Web Performance Test aracına ihtiyaç
duyulur. Gerçeğe yakınlık için birden fazla farklı test senaryoları ile uygulama test edilerek, HTTP yanıt
süreleri, kullanılan kaynakların artış-iniş miktarı, memory leak izlenimi gibi elde edilen test sonuçlarıyla
raporlar analiz edilir ve mantıksal bir davranış aranır.
Test senaryoları şu şekilde olabilir:
-Belirli bir sayıda sanal kullanıcının uygulama üzerinde random veya belirli bir gecikme süresiyle site
linklerine tıklaması.
-Belirli bir sayıda sanal kullanıcının hepsinin aynı anda belirli bir site linkine tıklaması.
-Sayısı artan şekilde sanal kullanıcının site linklerine tıklaması.
-GET harici, POST içeren linklere sanal kullanıcıları username&pass ile log in edilerek site linklerinin test
edilmesi.
Tüm bu test senaryolarının imkanını sağlayan Apache Jmeter oldukça etkili ve gerçekçi test aracıdır.
Jmeter ile PHP, ASP.NET gibi dillerde yazılmış web uygulamaları stress ve yük testine tutulabilir. Linux ve
Windows platformlarına kurulabilir.
http://jmeter.apache.org/ adresinden güncel sürümlerine ulaşılabilir.
Jmeter, web stress&performans test sunucusu olarak ayrıbir sunucuya kurulup çalıştırılması daha uygundur.
GUI bazlı ve komut satırından test senaryoları çalıştırılabilir. Bunlar arasındaki kullanım farkını açıklıyor
olacağız.
1- GUI ile JMETER çalıştırma:
Test senaryosu hazırlamak için BIN klasörü altındaki jmeter.bat dosyasını çalıştıralım:
Bir adet hazır Test Plan karşımıza gelir.
İlk olarak kullanıcıları belirlemek için Thread Group ekliyoruz.
100 kullanıcı ile test etmeyi tercih ediyoruz.
Ramp-Up Periyot değeri farklı varyasyonlarda testler için önemli bir değer. Saniye türünden girilen değer
ile kullanıcı yükünün ne kadar sürede artarak devam edeceğinin belirtilmesini sağlar.
Sonra test edilecek URL’yi belirlemek için Sampler ekleyeceğiz. Sampler, HTTP Request olacak.
Server name (site adı) ve Path kısmına (burada anasayfayı göstermek için / kullanıldı) /urlismi-
urlismidevam.html benzer tanım giriyoruz.
Bir de rapor grafiği oluşturalım. Listener ile Response Time grafiği ekliyoruz.
Test senaryosunda kullanılacak bir çok unsur ve seçenek var. Bu şekilde en basit haliyle start edelim.
Grafikten görüleceği üzere testtekullanılan uygulamada anlık 100 kullanıcı ile sonuç iç açıcı değil. 11 saniye
süren response time’ları görüyoruz.
2- Komut Satırı ile JMETER çalıştırma:
Eğer testler daha fazla kullanıcı ve URL’ler ile yapılacaksa (örneğin 10000 anlık kullanıcı) testin performans
probleminin önüne geçmek için Jmeter komut satırından parametrelerle çalıştırılmalı. Response Time
haricinde başka Listener’lar ile uçtan uca raporlama için GUI modda Jmeter fazlaca RAM ve CPU
tüketmekte.
GUI modda istenen değerleri girdikten sonra bu defa start demeden bu test planını kaydedelim. (BIN
klasörünün altında kopyalayacak)
Ek olarak JMeter’a kullanabileceği max RAM ayarı yapalım.
Jmeter klasöründe – BIN klasörünün altında jmeter.bat dosyasını notepad ile editleyelim.
Aşağıdaki satırı bulup default değeri 4GB, 8GB, 16… olacak şekilde değiştirelim.
set HEAP=-Xms16384m -Xmx16384m
Şimdi Jmeter’in bulunduğu path’te BIN klasörüne komut satırından ulaşalım.
Burada şu komutu çalıştıracağız:
jmeter -t testplan.jmx -n -l c:testplan.csv
jmx dosyasında test senaryosu, oluşacak testplan.csv dosyasında ise test sonuçları çıkacak.
csv dosyasını okumak için test bittikten sonra Jmeter’ı GUI modda açarak;
Response Time adlı listener’a gözat ile dosya konumunu gösteriyoruz.
Raporu elde etmiş olduk.
Jmeter, çeşitli test senaryo-varyasyonlarda kullanılabilecek etkili ve gerçekçi bir stress aracıolup ücretsizdir.

More Related Content

Similar to Jmeter

Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)windowsblogu
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
Log yonetimi tecrubeleri
Log yonetimi tecrubeleriLog yonetimi tecrubeleri
Log yonetimi tecrubeleriErtugrul Akbas
 
İş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleriİş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test TeknikleriOnur Baskirt
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişBurak AVCI, MEM, PSM I®
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriErtugrul Akbas
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 sharedEngin Yelgen
 
Xamarin Test Cloud
Xamarin Test Cloud Xamarin Test Cloud
Xamarin Test Cloud Emrah ÇAPAR
 
Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciNecdet Terkes
 

Similar to Jmeter (20)

Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
Caffe kılavuzu
Caffe kılavuzuCaffe kılavuzu
Caffe kılavuzu
 
Log yonetimi tecrubeleri
Log yonetimi tecrubeleriLog yonetimi tecrubeleri
Log yonetimi tecrubeleri
 
Php unit ve tdd
Php unit ve tddPhp unit ve tdd
Php unit ve tdd
 
İş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleriİş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleri
 
Teste bakıs v01
Teste bakıs v01Teste bakıs v01
Teste bakıs v01
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
 
Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 shared
 
Selenium sunum
Selenium sunumSelenium sunum
Selenium sunum
 
Xamarin Test Cloud
Xamarin Test Cloud Xamarin Test Cloud
Xamarin Test Cloud
 
Cp Scom
Cp ScomCp Scom
Cp Scom
 
Devnot - Dev Summit 2018
Devnot - Dev Summit 2018Devnot - Dev Summit 2018
Devnot - Dev Summit 2018
 
Exchange Server 2010 Tips and Tricks
Exchange Server 2010 Tips and TricksExchange Server 2010 Tips and Tricks
Exchange Server 2010 Tips and Tricks
 
Software/Yazılım Test
Software/Yazılım TestSoftware/Yazılım Test
Software/Yazılım Test
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test Sureci
 

Jmeter

  • 1. JMETER ile Web Uygulamalarında Yük, Stress ve Performans Testi Uygulamaların (web siteleri, web servisleri vb) gerçek kullanıcılar ile etkileşime geçmeden önce bazı öngörülen performans değerlerine ulaşıp ulaşmadığını tespit etmek ve kullanılabilirlik sınırlarını belirlemek için yapılan birtakım testler, yük, stress ve performans testi olarak adlandırılır. Aralarında ufak farklılıklar olsa da bu testler, “uygulamam aynı anda kaç kullanıcı ile etkileşimde sorunsuz şekilde hizmet verebiliyor” sorusunun cevabını bulmaktır. Önemli olan diğer konu tüm bu hizmetin hangi altyapı imkanları ile verileceği. Performans testleri, önceden belirlenen servis altyapı, kaynak ve imkanlar göz önünde bulundurularak maksimum değeri elde etmek veya kabul edilen yani önceden belirlenen performans hedefi için nasıl bir altyapıya ihtiyaç olduğunu belirlemek için de yapılır. Bu servis altyapısı temel olarak; -Bandwith miktarı -Donanım (kaynak) miktarı -Lisans ihtiyacı Unsurlarından oluşmaktadır. Bu süreçte gerçeğe yakın en doğru sonuçları almak için etkili bir Web Performance Test aracına ihtiyaç duyulur. Gerçeğe yakınlık için birden fazla farklı test senaryoları ile uygulama test edilerek, HTTP yanıt süreleri, kullanılan kaynakların artış-iniş miktarı, memory leak izlenimi gibi elde edilen test sonuçlarıyla raporlar analiz edilir ve mantıksal bir davranış aranır. Test senaryoları şu şekilde olabilir: -Belirli bir sayıda sanal kullanıcının uygulama üzerinde random veya belirli bir gecikme süresiyle site linklerine tıklaması. -Belirli bir sayıda sanal kullanıcının hepsinin aynı anda belirli bir site linkine tıklaması. -Sayısı artan şekilde sanal kullanıcının site linklerine tıklaması. -GET harici, POST içeren linklere sanal kullanıcıları username&pass ile log in edilerek site linklerinin test edilmesi. Tüm bu test senaryolarının imkanını sağlayan Apache Jmeter oldukça etkili ve gerçekçi test aracıdır. Jmeter ile PHP, ASP.NET gibi dillerde yazılmış web uygulamaları stress ve yük testine tutulabilir. Linux ve Windows platformlarına kurulabilir.
  • 2. http://jmeter.apache.org/ adresinden güncel sürümlerine ulaşılabilir. Jmeter, web stress&performans test sunucusu olarak ayrıbir sunucuya kurulup çalıştırılması daha uygundur. GUI bazlı ve komut satırından test senaryoları çalıştırılabilir. Bunlar arasındaki kullanım farkını açıklıyor olacağız. 1- GUI ile JMETER çalıştırma: Test senaryosu hazırlamak için BIN klasörü altındaki jmeter.bat dosyasını çalıştıralım: Bir adet hazır Test Plan karşımıza gelir. İlk olarak kullanıcıları belirlemek için Thread Group ekliyoruz.
  • 3. 100 kullanıcı ile test etmeyi tercih ediyoruz. Ramp-Up Periyot değeri farklı varyasyonlarda testler için önemli bir değer. Saniye türünden girilen değer ile kullanıcı yükünün ne kadar sürede artarak devam edeceğinin belirtilmesini sağlar. Sonra test edilecek URL’yi belirlemek için Sampler ekleyeceğiz. Sampler, HTTP Request olacak.
  • 4. Server name (site adı) ve Path kısmına (burada anasayfayı göstermek için / kullanıldı) /urlismi- urlismidevam.html benzer tanım giriyoruz. Bir de rapor grafiği oluşturalım. Listener ile Response Time grafiği ekliyoruz.
  • 5. Test senaryosunda kullanılacak bir çok unsur ve seçenek var. Bu şekilde en basit haliyle start edelim. Grafikten görüleceği üzere testtekullanılan uygulamada anlık 100 kullanıcı ile sonuç iç açıcı değil. 11 saniye süren response time’ları görüyoruz. 2- Komut Satırı ile JMETER çalıştırma: Eğer testler daha fazla kullanıcı ve URL’ler ile yapılacaksa (örneğin 10000 anlık kullanıcı) testin performans probleminin önüne geçmek için Jmeter komut satırından parametrelerle çalıştırılmalı. Response Time
  • 6. haricinde başka Listener’lar ile uçtan uca raporlama için GUI modda Jmeter fazlaca RAM ve CPU tüketmekte. GUI modda istenen değerleri girdikten sonra bu defa start demeden bu test planını kaydedelim. (BIN klasörünün altında kopyalayacak) Ek olarak JMeter’a kullanabileceği max RAM ayarı yapalım. Jmeter klasöründe – BIN klasörünün altında jmeter.bat dosyasını notepad ile editleyelim. Aşağıdaki satırı bulup default değeri 4GB, 8GB, 16… olacak şekilde değiştirelim. set HEAP=-Xms16384m -Xmx16384m Şimdi Jmeter’in bulunduğu path’te BIN klasörüne komut satırından ulaşalım. Burada şu komutu çalıştıracağız: jmeter -t testplan.jmx -n -l c:testplan.csv jmx dosyasında test senaryosu, oluşacak testplan.csv dosyasında ise test sonuçları çıkacak. csv dosyasını okumak için test bittikten sonra Jmeter’ı GUI modda açarak; Response Time adlı listener’a gözat ile dosya konumunu gösteriyoruz.
  • 7. Raporu elde etmiş olduk. Jmeter, çeşitli test senaryo-varyasyonlarda kullanılabilecek etkili ve gerçekçi bir stress aracıolup ücretsizdir.