Bu yazımda Apache JMeter kullanarak basit bir REST API testinin nasıl yapıldığını anlatacağım.
Gereklilikler
- HTTP methodları hakkında bilgi sahibi olmak.
1. Kurulum
JMeter’ı indirmek için http://ftp.itu.edu.tr/Mirror/Apache//jmeter/ bağlantısına gidin. İndirdikten sonra arşivden çıkarın. Karşınıza şöyle bir klasör yapısı çıkacak.
/bin dizinine giderek “ApacheJMeter.jar” veya “jmeter.bat” dosyalarından birini çalıştırarak programı açıyoruz.
2. HTTP İsteği Göndermek
Programı açtıktan sonra ekran görüntüsünde olduğu gibi Test Plan’e sağ tıklayıp Add -> Thread (Users) -> Thread Group seçeneğine tıklayın. İsteğe bağlı olarak isim verebilirsiniz. Ben bu şekilde devam ediyorum.
Yapacağımız istek Thread Group üzerinde çalışacağı için Thread Group’a sağ tıklayıp Add -> Sampler -> HTTP Request seçeneğine tıklayın.
Ben bu anlatımı test için https://jsonplaceholder.typicode.com/comments?postId=1 üzerinden yapacağım.
Aşağıdaki ekran görüntüsündeki formu şu şekilde dolduruyorsunuz.
Procol: Örneğimizde https.
Server Name or IP: jsonplaceholder.typicode.com
Path: Server Name veya IP’den itibaren soru işaretine kadar olan kısım. (/comments)
Method: Kullanacağınız HTTP metodu.
Send Parameters With The Request: Örneğimizde parametre de göndereceğimiz için burayı da kullanıyoruz. Parametre ise soru işaretinden sonraki kısım, yani “postId=1”.
Son olarak listener ekleyip yaptığımız isteği dinliyoruz. HTTP Request’e sağ tıklayın. Add -> Listener -> View Result Tree seçeneği ile listener’ı oluşturun.
Buraya kadar geldikten sonra ilk testimizi yapalım. Yukarıdaki Start butonuna basarak isteği gönderiyoruz.
Test planını daha sonra kullanmak üzere kaydetmek isteyip istemediğimizi soruyor. Yes diyerek devam ediyorum.
1 numaralı sekmedeki yeşil onay işareti başarılı bir istek atıp cevap aldığınız gösteriyor.
2 numaralı sekmede gönderilen/alınan veri boyutu, bağlantı süresi gibi sonuçlar,
3 numaralı sekmede gönderdiğiniz isteğe dair ayrıntılar,
4 numaralı sekmede size gelen cevap yer alıyor.
3. Toplu İstek Gönderme
Kullandığınız API’nın ne kadar isteğe cevap verebileceğini test etmek isteyebilirsiniz. Bu durumda ise Loop Controller kullanıyorsunuz. Thread Group’a sağ tıklayıp Add -> Logic Controller -> Loop Controller seçeği ile controller oluşturup HTTP Requesti sürükleyip controllerın içine koyuyorsunuz. Eğer bu isteklerin belirli bir gecikmeyle yapılmasını istiyorsanız da Controller’a sağ tıklayıp Add -> Timer -> Constant Timer seçeneğini kullanıyorsunuz. Oraya gecikme süresini ms cinsinde yazdıktan sonra yaptığınız istekler timerda yazan değer kadar gecikmeli olarak loop içinde yazan değer kadar yapılır. Eğer baştan itibaren yazıyı takip ettiyseniz nihai test plan yapısı aşağıdaki şekilde oluyor.
4. XML/CSV Sonuç Alma
Yaptığınız isteklere dair sonuç dokümanı almak için View Result Tree içinde bulunan “Write results to file /Read from the file” yazısının altında bulunan yere kaydetmek istediğiniz yolu ve dosya adını giriyorsunuz. Sağ tarafta bulunan configure seçeneğine tıklayarak doküman içeriğinde neler olmasını istediğinizi yazıyorsunuz. Sonra siz thread’e start dediğinizde dokümanı oluşturup belirlediğiniz yere kaydediyor.
JMeter programının kullanımı bu şekilde. Daha birçok özelliği ve test/sonuç şekilleri var fakat en genel kullanım alanı bu şekilde olduğu için yazıyı burada bitiriyorum. Eğer talep olursa biraz daha ayrıntıya indiğim bir yazı daha yazabilirim. Sorularınızı, katkılarınızı ve eleştirilerinizi bekliyorum.
Bu yazı ilk olarak https://medium.com/topluluk/apache-jmeter-i%CC%87le-rest-api-testi-617d9d377ad8 adresinde yayınlanmıştır.