Apache Jmeter Nedir ? Ne için kullanılır ?
Apache JMeter, performans, yük, stres ve fonksiyon testlerini koşmak için kullanılan, açık kaynak kodlu bir test yazılım aracıdır. Apache Yazılım Vakfı Tarafından geliştirilmiştir ve bakımı yapılmaktadır.
Jmeter’in sağladığı avantajlara göz atalım:
· Açık kaynak kodlu ve ücretsizdir.
· Java tabanlı olduğu için birçok platformda çalışabilir.
· Çoklu kullanıcı desteği ile performans, yük ve stres testleri yapabilirsiniz.
· Api, Veritabanı, FTP ve diğer rotokollerle testler gerçekleştirebilirsiniz.
· Basit arayüzü sayesinde kullanımı kolaydır.
· Birçok raporlama ve analiz seçeneği sunar.
Jmeter nasıl kurulur ?
Jmeter’i kullanabilmek için bilgisayarınızda Java (JDK,JRE) mutlaka kurulu olmalıdır. Güncel Java sürümünü buradan indirebilirsiniz. Java kurulumu tamamlandıktan sonra güncel Jmeter yazılımını da buradan indirebilirsiniz.
Zip veya tgz uzantılı dosya indirilip çıkartılır. “apache-jmeter-5.6\bin” içerisinde yer alan “ApacheJmeter.jar” adlı jar dosyası çalıştırılarak Jmeter açılır. Jmeter açıldığında, aşağıdaki ana ekran karşınıza çıkacaktır.
Üst menü çubuğunda klasik “File”, “Options” gibi seçenekler bulunurken, hemen altında jmx dosyasıyla ilgili başlatma, durdurma, temizleme gibi temel işlevler görülebilir.
Nasıl Kullanacağız ?
Çalışmaya başlamak için öncelikle Test Plan altında bir Thread Group oluşturmalıyız. Test Plan Sağ Tık → Add → Threads (User) → Thread Group tıklanır.
Aşağıdaki şekilde, Thread Group’un Test Plan altına başarıyla eklediğini görebilirsiniz.
Thread Group ile ekrana gelen bileşenleri ve parametleri tanıyalım.
- Name: Thread Group’a istediğiniz adı vermek için kullanılır. Default olarak “Thread Group” gelecektir.
- Comments: Yorum alanıdır ve çalışmayı herhangi bir şekilde etkilemez. Thread Groupdaki yapılan çalışmalar için yorum veya not yazılabilir.
- Action to be taken after a Sampler error: Herhangi bir hata ile durumunda test akışını nasıl yönlendireceğinizi belirlemenizi sağlar. Testi durdurma, devam ettirme gibi seçenekler sunar.
Thread Properties:
- Number of Threads (users): Eş zamanlı test yapacağınız kullanıcı sayısıdır.
- Ramp Up Period (seconds ): Belirlenen kullanıcıların totalde kaç saniye içerisinde sisteme giriş yapacağı belirlenir.
- Loop Count: Her bir kullanıcının kaç kez işlem yapacağını (iteration) belirler.
Bu seçenekler default olarak 1 gelecektir. Yük ve performans testlerinde istenen kullanıcı ve süre verilerek sistem test edilebilir.
Örnek : Number Of Threads: 20, Ramp Up: 5sn, Loop Count: 3. Bu konfigürasyon, “20 kullanıcı 5 saniye içerisinde sisteme girecek ve her bir kullanıcı 3 kez aynı işlemi gerçekteştirecektir” anlamına gelecektir.
Şimdi deneme amaçlı istek atabilmek için HTTP Request ekleyelim.
- Thread Group → Add → Sampler → HTTP Request tıklanır ve HTTP Request’in Thread Group altına eklenmiş olduğu görülür.
HTTP Request ile ekrana gelen component ve parametleri tanıyalım.
- Name: Default HTTP Request olarak gelir. İsteğe bağlı farklı şekilde adlandırılabilir.
- Protocol: İlgili protokole göre https veya http girilir. Boş bırakılırsa varsayılan olarak http olacaktır.
- Server Name Or IP: İstek gönderilecek hedef sunucu adresidir. (www.google.com.tr)
- HTTP Request: Gönderilecek isteğin türünü belirler. (Get,Post, Put vb.)
- Path: İstek atılacak adresin path kısmını belirler. (/imghp?hl=tr&ogbl)
- Port Number: Url veya Ip adresine ait port numarası girilir.
- Content Encoding: Medya sıkıştırma türünü belirtir. (gzip, compress, deflate, br, identity gibi )
- Parametre veya Body içeren bir Api ye istek atılacaksa, bu girişlerin de yapılması gerekir. Bu örnekte bir web url’e GET istek atacağımız için herhangi bir parametre veya Body girişi yapmadık.
Örnekte görüldüğü üzere HTTP içeriği geçerli bilgiler ile dolduruldu. Şu an istek atılabilir durumda fakat işlem sonuçlarını izleyebilmek için öncelikle bir “Listener” eklenmelidir..
- Thread Grup Sağ Tık → Add → Listener → View Results Tree seçilir ve Listener eklendiği görülür.
View Results Tree Listener’ını seçtik. Sırasıyla Test Plan → HTTP Request ve Listener ekledik. Şu anda Start komutunu vererek istek gönderebilir ve sonucu görebiliriz.
1- Start
2- Sonuç:
View Results Tree altında, gönderilen istek ve isteğin durumunu belirten (yeşil,kırmızı) renk ikonunun geldiğini görüyoruz.
3- Sonuç İzleme:
Detayları görebilmek için View Results Tree altındayken HTTP Request’i seçtik. Sampler Result tabında, requeste ait Response Code, Response Message, Load Time, Content Type gibi genel bilgileri görebiliriz.
Request tabında, gönderdiğimiz request Body ve Headers detay bilgilerini görebiliriz.
Response Data tabında ise Response Body ve Headers bilgilerini görebiliriz.
Düzgün formatta bir response görmek için istek atılan platforma uygun bir görüntüleme formatı seçilmelidir. Varsayılan olarak Text seçili olduğu için örnekteki gibi response text formatta görüntülenmektedir. Google web sitesine istek attığımız için Browser seçmek uygun olacaktır. Browser seçildiğinde aşağıdaki gibi response görebiliriz.
Bu basit örnek ile Jmeter’da bir HTTP Request’in baştan sona sürecini görmüş olduk. Yük testi ve performans testleri kapsamında çalışma yapılacak web uygulaması, API’ler üzerinde gerekli modelleme çalışmaları yapıldıktan sonra bu örnekte olduğu gibi JMeter ile çalıştırılabilir.”
Sonraki yazımda public API’ler ile detaylı API testi ve bu test sırasında farklı jmeter elementleriyle çalışmayı anlatacağım.
Keyifli okumalar.