04 Mayıs 2015

Jmeter ile Uygulama Katmanında Yük Testi Gerçekleştirme – Bölüm-1:Temel Adımlar

Apache Jmeter Java tabanlı, hem statik hem de dinamik kaynakları test etmek için kullanılan bir yük testi aracıdır. Apache Jmeter uygulaması ile gerçekleştirebileceğiniz bazı sunucu veya protokol türleri aşağıdaki gibidir:

  • Web - HTTP, HTTPS
  • SOAP
  • FTP
  • DBMS
  • LDAP
  • Mail - SMTP(S), POP3(S)ve IMAP(S)
  • MongoDB (NoSQL)
  • TCP
Öncelikle makalemize giriş yapmadan Jmeter.org adresinden yük testimiz için gerekli olan Apache Jmeter  uygulamasını indirilelim. İndirdiğimiz “apache-jmeter-2.12.zip” arşiv dosyasını klasöre çıkartıp, klasör içerisinde  bulunan bin  klasörü içerisindeki ApacheJMeter.jar uygulamasını çalıştıralım.



Web Sunucu Test Senaryosunun hazırlanması

Web sunucu test senaryosunu hazırlamak için birden fazla farklı yöntem bulunmaktadır. Bu makalemizde en temel adımlardan başlayacağız ve sonraki makalelerimizde yeri geldikçe diğer yöntemlerden bahsedeceğiz.
Bir web sunucusunu uygulama katmanında yüke karşı dayanıklığını test etmek için, öncelikli olarak kullanıcı sayısını belirlememiz gerekmektedir.
  • Test Plan’a farenin sağ tık butonuna basarak Add menüsünden Thread (Users) kısmından, Thread Group’u seçelim.

Eklemiş olduğumuz Thread Group’a ilişkin ekran görüntüsü aşağıdaki gibidir:



Thread Group içerisinde yer alan alan bazı parametre alanlarına göz atalım,
Name:Thread Group’u adlandırmak için kullanılır.
Action to be taken a Sampler error: Test yapıldığında hata durumundaki davranışını ifade eder.
  • "Continue" - Hata oluşursa bile test etmeye devam et
  • “Start Next Thread Loop” – Hata alındığında bir sonraki dizi döngüsüne geç
  • "Stop Thread" – İşletim diziyi durdur
  • "Stop Test" - Testi durdur
Number of Threads (users): Oluşturulacak sanal kullanıcı (virtul user(s) veya concurrent user(s) değeri  bu alana girilir.
Ram-up period (in seconds): Number of Threads kısmında belirlenen kullanıcı sayısına kaç saniye erişilmek isteniyorsa buraya o değer yazılır.
Loop Count: Testin kaç defa tekrarlanacağı bu alanda belirlenir. “Frover” seçeneği seçilirse kullanıcı tarafından test durdurulana kadar yük testi devam edecektir.
Scheduler: Testin belirtilen zaman aralığında gerçekleştirilmesini sağlar.

  • HTTP sayfa yük testi için ayarları konfigüre etmek için Thread Group’a farenin sağ tuşuna basarak Add menüsünden, Config Element kısmından HTTP Request Defaults’u seçelim.



Server Name or IP: Bu alana test yapmak istediğimiz Http sunucusu alan (domain) adını veya IP adres değerini yazalım.
Port Number: Bu alana Http sunucuna bağlanılmak istenen port numarasını yazalım.
Timeouts: Connect (Bağlantı) ve Respons (Yanıt) alanlarına mili saniye cinsinden değerler girerek  zaman aşımı değerlerini tanımlayabilirsiniz.
Path: Http sunucusu dizininde yer alan yol (iz) bilgisini tanımı yapılabilinir.

  • Blog.btrisk.com sitesi için aşağıdaki gibi parametre tanımları yapılmıştır.



  • HTTP isteğini (HTTP Request) Thread Group’a farenin sağ tuşuna basarak Add menüsünden, Sampler kısmında  HTTP Request’ i aşağıdaki gibi ekleyebiliriz.



Karşımıza çıkan HTTP Request sayfası aşağıdaki gibidir. 2. Madde açıklanan yapı ile benzer yapıdadır. Ek olarak burada http isteğinde kullanılacak metot (Method) seçeneği yer almaktadır.

  • Örnek olarak Blog.btrisk.com sitesine yönelik yük testi için HTTP Request içerisinde yer alan ilgili parametreleri aşağıdaki gibi düzenleyelim.



Path alanı yukarıda da görüleceği üzere ana sayfaya giriş olduğu için “/” değeri girilmiştir.

  • Ayrıca Blog.btrisk.com sitesinde yer alan diğer bir sayfaya yapılacak istek içinde yeni bir HTTP Request ekleyip içerisindeki parametre alanlarına aşağıdaki gibi bilgiler girilmiştir.



  • Yapılan isteklere karşılık alınan yanıt sürelerine ilişkin değerleri grafiksel olarak görüntüleyebilmek için Thread Group’a farenin sağ tuşuna basarak Add menüsünden, Listener kısmından Response Time Graph’ı seçelim.

  • Bu adımda Thread Group sayfasından kullanıcı sayısını, belirlenen kullanıcı sayısına kaç saniyede ulaşacağını ve testin kaç defa tekrar edileceğini belirleyelim.



  • Son adım olarak Run menüsünden Start veya Crtl+R tuş kombinasyonunu kullanarak  yük testini başlatalım.

Test başladığında Test süresince sağ üst köşede yeşil kare yanacak ve kullanıcı sayısı tanımlanan değere kadar artacaktır.



  • Test bitiminde veya test devam ederken Response Time Graph’ı seçip Graph sekmesinden yanıt sürelerinin değişimini gözlemleyebiliriz.




                                                                                                                                    Sonraki Bölüm>>