JMeter Kurulum ve Kullanımı

Recep İnanç
4 min readJan 19, 2019

--

JMeter kurulumu, örnek test senaryoları ve sonuçları üzerine

Apache JMeter™, yük, performans ve daha bir çok test ölçümleme için kullanılan saf Java ile yazılmış olan yazılımıdır.

JMeter başta web uygulamalarına uygulanabilen testler olmak üzere, birçok testi gerçekleştirmeyi sağlayan bir yazılımdır.

Geçtiğimiz günlerde bir web uygulaması üzerinde performans testi yapmam gerekti, bunun için aklıma gelen ilk alternatif Postman oldu (https://www.getpostman.com/). Fakat biraz bakındıktan sonra Postman’in tam olarak istediğim şeyi karşılayamacağını ya da buna ulaşmak için çok fazla düzenleme ile uğraşmam gerektiğini farkettim (Newman CLI kullanıp, bash script ile otomize etmeye çalışmak gibi). Burada benim için en önemli kriter aynı anda birden fazla istek atabilmekti. Öneri üzerine JMeter’a baktım ve bunu yapmanın JMeter’da çok pratik olduğunu gördüm. Daha sonrasında kendimce biraz araştırıp, notlar alırken aldığım notları toparlayıp sizlerle paylaşmaya karar verdim.

Burada paylaştığım notlar JMeter’da deneme sürüşü yaparken aldığım notlar olduğu için, giriş seviyesinde ve kullanıma yöneliktir.

Notları paylaşmadan önce Türkçe kaynak var mı diye göz attığımda Gökhan Şengün’ün çok daha kapsamlı olan JMeter yazısını gördüm, onu da detaylı bilgi almak isteyenler için buraya ekliyorum (https://gokhansengun.com/jmeter-nedir-ve-ne-ise-yarar/).

Kurulum

Bu adresten binary dosyanı (apache-jmeter-5.0.zip) buradan indiriyoruz.

Binary dosyasını istediğiniz dizine taşıyın ve orada unzip edin. Eğer JAVA_HOME environment variable’ı düzgün set edilmişse, kurulum tamamlandı demektir. JMeter saf Java ile yazıldığı için Java geliştirme ortamının kurulu olduğu her ortamda kullanımı mümkündür.

Benim örnekleri kullandığım ortam: “Mac OS Mojave”

Test Çalıştırmak

JMeter’ın kendi sitesinde verilen çalıştırma yöntemlerine bu linkten ulaşabilirsiniz.

Bizim durumumuz için bin/ klasörüne gidip orada ./jmeter ile GUI mode’da başlatabiliriz, bizi aşağıdaki gibi bir ekran karşılayacak:

JMeter açılış ekranı

Hızlı bir test ortamı kurulumu yapmak için template’lardan faydalanabiliriz.

Open > templates > build-web-test-plan.jmx

Template açıldıktan sonra sol menüde bu test ortamının bileşenlerini görebiliriz. Kendi ihtiyaçlarımıza göre configure etmek için aşağıdaki adımları izlemeleyiz.

Konfigurasyon

Öncelikli olarak Scenerio 1 bileşeninde yapmamız gereken değişikler:

  • Name
  • Comments
  • Number of Threads (users): Aynı anda kaç farklı istek atmayı istiyoruz? Bu özellik, istediğimiz sayıda kullanıcının isteklerini simüle etmemizi sağlayacak.
  • Ramp-up Period (in seconds): Number of Threads’de tanımlamış olduğumuz kullanıcı sayısına ne kadar sürede ulaşmak istediğimiz. 100 kullanıcı verdik diyelim, Ramp-up Period’u 10'a set edersek saniyede 10'ar user istek atacak gibi. Buradan concurrency için daha detaylı bilgiye ulaşabilirsiniz.
  • Startup Delay (in seconds): İsteği atmaya başlamak için ilk başta ne kadar beklememiz lazım. (5 saniye sonra istekler atılmaya başlayacak.)

Sıradan devam edersek, atacağımız isteğe göre bunları da konfigüre etmemiz gerekecek:

  • HTTP Request Default: Advanced > timeout eklenebilir.
  • HTTP Cookie Manager: options altında “Clear Cookies each iteration?” beklentiye göre seçilebilir.
  • HTTP Header Manager: Gerekli header’ları direkt clipboard’umuzdan yapıştırabiliriz.

Daha sonra Home Page’e girip orada asıl request’i oluşturuyoruz. Aşağıdaki gibi gerekli yerlere bilgileri girdikten sonra requestimiz hazır olacak. POST request’i atabilmek için vermemiz gereken Body Data vs. gibi bilgileri de girebiliriz.

JMeter, örnek bir GET request’i

Son olarak Home Page section’ını genişletince altında örnek Assertion’ı, test case’i, göreceğiz. Bu test case’i de kendi isteğimize göre düzenleyebiliriz. Ben burada response’un 200: OK olmasını istiyorum.

JMeter ile yanıt testi

Buna ek olarak yeni bir test case eklemek istersek, “Home Page” section’ına sağ tıklayıp Add > Assertion > … ile bunu gerçekleştirmemiz mümkün. Ben response time’ı test etmek için yeni bir assertion ekleyeceğim:

JMeter ile response time testi

Bu bize response time test etmek için güzel bir template verecektir.

Testler ve Sonuçları

Testleri çalıştırmak için yukarıdaki “Run CMD+R” butonunu kullanabiliriz.

Testlerimizin sonuçlarını View Results Tree altında görüntüleyeceğiz. İstersek buradaki çıktıyı bir dosyaya CSV formatında yazdırmak mümkün. Bunun için View Results Tree > Write Results to file / Read from File’da yazmak istediğimiz path’i belirtmemiz yeterli olacaktır.

Testler çalıştıktan sonra en sağ üst köşede ne kadar sürdüğü, kaç tane thread’in aktif edilip çalışır durumda olduğu bilgilerini görürken, asıl pencerede test sonuçlarını göreceğiz. Burada başarısız olan testler kırmızı ile belirtilip, genişletilebilir bir link halinde olacaktır, tıklayınca altında fail eden test case (Assertion) ve sebebi yer alır.

JMeter test sonuçlarında başarısız olan testler, sebepleri ile birlikte belirtilir.

Sonuç

Eğer dinamik, otomotize edilmiş performans testleri, yük testleri, davranış ve fonksiyonel testler yapmak istiyorsanız JMeter kurulumu ve kullanımı oldukça basit olan ve çok kolay konfigüre edilebilen bir yazılımdır.

Bu yazı sadece temel kullanımı ele alır, ve JMeter’ın bundan çok daha fazlasını yapabildiğini üzerine yazılmış güzel bir iki dökumandan anlayabiliriz, daha detaylı bilgi almak, diğer özelliklerini keşfetmek isteyenler için umarım bu yazı güzel bir başlangıç noktası olur.

Sevgiyle kalın.

--

--

Recep İnanç
Recep İnanç

Written by Recep İnanç

Software Developer @Amazon. You can find me at recepinanc.com. My opinions are my own.

No responses yet