17 Mayıs 2015

Jmeter ile Uygulama Katmanında Yük Testi Gerçekleştirme – Bölüm -2 Gelişmiş Seçeneklerin Kullanımı

Bu makalemizde http ve https temelli senaryolarımızı daha kolay bir şekilde oluşturmayı ve Jmeter-Plugin eklentisi ile daha fazla grafik elde ederek yük testi analizlerimizin daha anlamlı ve anlaşılır olmasını sağlayacağız.


Makalemize başlamadan önce Jmeter-Plugin.org sayfasından Extras Set eklentisini indirelim. İndirdiğimiz Extras Set arşiv dosyasını bir klasöre çıkarıp içerisindeki dosyaları Apache-Jmeter ana dizine kopyalayıp, var olan dosyaları yenileri ile değiştirilmesine izin verelim.

Yukarıdaki anlatılan işlemleri doğru bir şekilde gerçekleştirdiğinizde Apache-Jmeter/bin dizini içerisinde yer alan ApacheJMeter.jar uygulamasını çalıştırdığınızda aşağıdaki gibi değişikler olduğunu göreceksiniz.

Örneğin Listener sekmesine tıkadığınızda seçeneklerin aşağıdaki gibi artığı görülmekte.


HTTP(S) Test Script Recorder ile Yük(Stres) Testi Senaryosunun Hazırlanması

  • Apache-Jmeter uygulamasının bulunduğu klasör içerisinden ApacheJmeter.jar uygulamasını çalıştıralım.
  • Test Plan’a sağ tıklayıp Add sekmesinden Thread (user) alanından Thread Group bileşenini seçelim.
Thread Group içerisinde yer alan daha önceki makalemizde değindiğimiz parametreler alanlarını yük testimizin ihtiyaçları doğrultusunda düzenleyelim


Örneğin biz yük testimizi 100 sanal kullanıcıya 10 saniyede ulaşabilecek ve senaryoyu 4 defa tekrarlayacak  şekilde düzenleyelim.
  • Thread Group bileşenine sağ tıklayıp Add sekmesinden Logic Controller içerisinden Recording Controller’ ı seçelim. Recorder Controller bileşenini kullanmamızın amacı, yapacağımız istekleri bu  bileşen aracılığı ile test senaryosu içerisine kayıt etmek.


  • Thread Group bileşine sağ tıklayıp Add sekmesinden Timer içerisinden Constant Timer’ ı seçelim.


Constant Timer bileşeni ile yapılan her bir istek arasındaki bekleme süresini belirleyebiliriz. Bu test senaryosu için yapılan istekler arasındaki bekleme süresi 300 mili saniye olarak belirlenmiştir.

  • WorkBench’e sağ tıklayıp Non-Test Elements sekmesinden HTTP(S) Test Script Recorder bileşenini seçelim.

HTTP(S) Test Script Recorder bileşeni bizlere tanımlayacağımız proxy aracılığı ile herhangi  bir internet tarayıcısı  ile gerçekleştriceğimiz istekleri, Thread Group altında yer alan Recoring Controller bileşeni içerisine eklenmesini sağlayacaktır.


HTTP(S) Test Script Recorder üzerinde yer alan Global Settings alanındaki Port numarasını proxy aracalığı ile dinlemek istediğimiz Port numarasını yazalım ve Test plan content altında yer alan Target Controller alanından yük testi senaryomuzu oluşturacağımız Recoring Controller’ın adını aşağıdaki gibi  seçelim.


Bunlara ek olarak test senaryonuz içerisinde olmasını istemediğiniz, sayfalar içerisinde yer alan uzantıları URL Patterns to Exclude alanından belirleye bilirsiniz.


  • Tarayıcımızın Ayarlar kısmından Bağlantı ayarlarından yukarıda tanımladığımız port numarasını 8080  ve domain başlığına localhost veya 127.0.0.1 yazalım.


  • Yukarı anlatılan bütün ayarlar yapıldık sonra WorkBench’in altında yer alan HTTP(S) Test Script Recorder seçilip Start butonu tıklanıp proxy ayarları yapılmış tarayıcı üzerinden yük testi yapacağımız ilgili web sayfasının test senaryosu kapsamında ilgili alanlarında gezinerek test senaryosunu oluşturalım.

  • Kontrol Notu: Test senaryosunun kayıt edildiğinden emin olabilmek için Test Plan’ın altında yer alan Thread Group’un altındaki Recording Controller sekmesi genişletelim ve gezilen sayfalara ait ilgili linklere göz atalım.


  • Makalemizin başında bahsediğimiz Jmeter-Plugin eklentisi ile gelen grafiklerin ne anlama geldiğine kısaca göz atalım.
Therad Group’ sağ tıklayıp Add Listener sekmesinden aşağıda kullanım amaçları yer alan bazı bileşenleri ekleyelim;
  • Response Codes per Second: Yaptığımız isteklere karşılık gelen yanıt başlığındaki mesajlarını istatistiksel dağılımını grafiksel olarak gösterir.
  • Response Latencies Over Time: Yapılan isteklere karşılık alınan yanıtların gecikme (Latencies) değerlerinin istatistiksel dağılımını grafiksel olarak gösterir.
  • Response Times vs Threads: Yaptığımız isteklere karşılık gelen yanıtların süresini ve o andaki kullanıcı sayısının istatistiksel  dağılımını grafiksel olarak gösterir.
  • Hits per Second: Bir saniyede iletilen istek sayısının istatistiksel dağılımını grafiksel olarak gösterir.

  • Son adım olarak testimizi Ctrl + R veya Run sekmesinde Start butonuna basarak başlatalım.
Örnek grafik çıktıları aşağıdaki gibidir:
  • Response Codes per Second


  • Response Latencies Over Time


  • Response Times vs Threads


<<Önceki Bölüm                                                                                                       Sonraki Bölüm>>