Jmeter ile Backend Otomasyonu Nasıl Yazılır?

Buse Kaya
Odeal-Tech
Published in
4 min readMar 26, 2020

Merhaba arkadaşlar,

Sizlere Jmeter toolunu kurup nasıl efektif kullanabileceğimizi, backend API testlerini nasıl gerçekleştirebileceğimizi anlatmaya çalışacağım. Sizinle A’dan Z’ye bütün deneyimlerimi paylaşacağım yazıların çok faydalı olacağını düşünüyorum.

Bu yazıda öncelikle basit bir Jmeter uygulamasının kurulumunun nasıl olacağını ve ilk testimizi nasıl çalıştıracağımızı anlatacağım. İlerleyen postlarda daha detaylı bir şekilde Jmeter’ın bizlere sunduğu özellikleri nasıl kullanabileceğimizden bahsedeceğim. Umarım Jmeter’a meraklı olup öğrenmek isteyen herkes için yararlı olur ve beğenirsiniz. Şimdiden keyifli okumalar.

Jmeter Nedir ?

JMeter öncelikle yük testi için tasarlamış fakat yeni eklenen özelliklerle API’lar için feature testi de yapılabileceğimiz bir hale gelmiştir.

JMeter Java ile yazılan bir araç olduğu için sisteminizde Java SE kurarak Mac, Windows ve Linux işletim sistemine sahip cihazlarınızın hepsinde kullanabilirsiniz.

http://jmeter.apache.org/download_jmeter.cgi adresinden download sayfasına yönleneceksiniz ve açılan sayfadan indirme işlemini gerçekleştirebilirsiniz.

Mac’de çalıştırmak için;

Terminali açıp Bin klasörüne eriştikten sonra sh jmeter yazarak toolu çalıştırabilirsiniz.

Windows’da çalıştırmak için ;

İndirdiğiniz jmeter klasörünü açıp Bin’nin içine girdikten sonra ApacheJmeter.jar’ın üzerine double click yaparak toolu çalıştırabilirsiniz.

Bizi aşağıdaki ekran karşılayacak.

Test Planın üzerine sağ click yaparak Add > Threads > Thread Group ekliyoruz. Eklediğimiz Thread Group’a sağ click yaparak ise Add > Sampler > Http Request ekliyoruz. Test Plan’a tekrar sağ click yaparak Add > Listener > View Result Tree ekliyoruz ve göreceğimiz ekran aşağıdaki gibi olacaktır. Bu yazımızda basic bir test yapısı üzerinden geçeceğiz. Eklediğimiz özelliklerden bahsedeceğim.

Basit Jmeter Yapısı

Thread Group : Bütün Controllers, Listeners, Samplers Thread Group’un altında sıralanır. Sizin testlerinizin hangi sıra ile çalışacağını belirlemenizi sağlar. Mesela Action to be taken after a Sampler Errror tabı altındaki seçeneklerden belirlediğiniz özellik ile Fail olan Sampler’dan sonra testinizin alacağı aksiyonu belirleyebilirsiniz.

Samplers : Sampler sayesinde server’a request atıp dönen response alabilirsiniz. Sampler’in içerisine yaptığınız testin amacına göre ihtiyacınız olan Assertion’ları ekleyebilir ve gerekli validasyonları yapabilirsiniz. Ben size Web Servisleri içni en çok kullanılan Http Request Sampler’ı anlatacağım.

HTTP Request : HTPP ve HTTPS request’leri atmanızı sağlayan sampler’dır. Gireceğiniz Server Name, Method, http tipi, istek atacağınız adresin url ve var ise port bilgisi ile burada istediğiniz şekilde çalışabilme imkanı sunmaktadır.

Eklediğimiz HTTP Request sampler’ında Server Name / IP alanına web sitemizin adresini giriyoruz.

Http Request

Path kısmına ise servera göndermek istediğimiz URL isteğini giriyoruz. Örneğimizdeki gibi, eğer server name alanına medium.com girersek, path alanına topic/editors-picks girersek Jmeter URL isteğini server için https://medium.com/topic/editors-picks olarak yaratacaktır. Seçtiğimiz method’a göre atacağımız istekten dönen sonuçlar farklılık gösterecektir.

View Result Tree : Testlerin sonuçlarını görüntüleyebildiğimiz yerdir. Yani göndermiş olduğumuz istekleri takip etmek için ise View Result Tree’yi kullabiliriz. Bu Listener bize atılan Request bilgilerini, dönen Response bilgisini, Url bilgisini, Response Code gibi bir çok bilgiyi sunmaktadır. Yan taraftaki alanda 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 — bu kısımdan daha sonra ki yazılarımızda bahsedeceğim) ve sebebi yer alır.Testimizin başarılı olup olmadığının takibini bu Listener üzerinden yapabiliriz.

View Result Tree

Şimdi kısaca toparlayalım. Öncelikle Test Planın altına Thread Group ekledik. Thread Group’un içine HTTP Request Sampler’ımızı ekledik ve istek atmak istediğimiz adres bilgilerini girdik. Test Planın altına View Result Tree ekleyerek, eklediğimiz listener üzerinden testimizi nasıl izleyeceğimiz adımını tamamladık. Kurduğumuz structure şu şekilde olacak;

Test Plan

· Thread Group

· HTTP Request

View Result Tree

Kurduğumuz bu yapı üzerinden ilk testimizi çalıştırıp sonucunu bir görelim. Thread Group üzerine sağ tıklayarak Start seçeneğini seçiyoruz ve View Results Tree listerner’ımmızı açıp testimizin sonucuna bakıyoruz. Testimizin sonuçlarını View Results Tree üzerindeki Sampler Result, Request, Response Data, Response Body, Response Headers tablarından detaylı bir şekilde inceleyebiliriz.

.jmx dosyasını incelemek isterseniz buradan indirebilirsiniz.

Basit bir şekilde Jmeter’ın functional testler için nasıl kullanılabileceğimizi ve mantığını anlatmaya çalıştım. Umarım faydalı olmuştur. Feedbackleriniz benim için oldukça önemli. Daha fazla değinmemi ya da anlatımda düzeltmemi istediğiniz yerleri yorum olarak benimle paylaşırsanız çok sevinirim. Umarım okuyan herkes için faydalı bir tutorial olmuştur. Devamı için beklemede kalın!

--

--