26 Haziran 2020

Performans Testi Aracı Apache JMeter’da REST API Servis Senaryosu Oluşturma Rehberi 1

Performans Testi Aracı Apache JMeter’da REST API Servis Senaryosu Oluşturma Rehberi 1

Performans Testi için piyasada çokça kullanılan Apache JMeter üzerinden REST Api servisleri için performans testi senaryosu nasıl oluşturulur, nasıl sonuçlar yorumlanır sizlerle birkaç makale üzerinden paylaşacağım. Rest servisleri bildiğiniz gibi manuel olarak Postman'den test ederek kontrol edebilirsiniz. İhtiyaç duyulan Headers ve Body bilgilerini Postman aracının gelişmiş arayüzünden yöneterek mikro servisleri kolayca test edebilirsiniz.

Peki bu servisler için yük testi oluşturmak istesek Apache JMeter'da bunun nasıl yapılacağını anlatacak olursam;

İlk olarak bilgisayarınıza Apache JMeter kurulumu yapmanız gerekmektedir. Bununla ilgili daha önce bir yazı yazmıştım, Apache JMeter'ın Detaylı Kurulumu adlı yazımdan kurulum işlemlerini yapabilirsiniz.

Apache JMeter uygulamasını açtıktan sonra ilk işimiz ekrandaki Test Plan’a sağ tıklayıp Add > Threads (Users) > Thread Group kısmını seçmenizdir.

Bu arada Options sekmesinden Look and Feel kısmından Apache JMeter ara yüzünü değiştirebilirsiniz. Ben Metal arayüz kullanıyorum.

İkinci olarak Test Plan’a tekrar sağ tıklayıp Add > Config Element > HTTP Header Manager kısmını ekleyiniz.

Performans Testi Aracı Apache JMeter’da REST API Servis Senaryosu Oluşturma Rehberi 1

Yukarıda resimde de gördüğünüz gibi Thread Group aşağıda ve HTTP Header Manager üstünde olacak şekilde ayarlayınız. İki pencerede Test Plan altında olmalıdır. İlk makalemde bu iki kısımdan bahsedeceğim daha sonraki makalelerimde diğer sekmelerin nasıl oluşturacağımıza değineceğim.

1) Thread Group

Number of Threads (Users): Maksimum kaç kullanıcı ile performans testi yapacağınızı belirler, toplamda kaç Request göndersin. Burası 100'de olabilir 1K veya 5K'da olabilir.

Ramp-up period (Seconds): Kullanıcı Request isteklerini belli aralıklar ile eş zamanlı artırılmasını istiyorsanız Ramp-up kısmına 1 değil de 5-10-20 yazabilirsiniz.

Loop Count: Her bir Thread’in (User’ın) Thread Group’un altında bulunan test adımlarını toplam kaç kere koşturacağı ayarı yapılır. 1 veya aynı süreci 2 defa yapmak isterseniz buraya yazmanız yeterli. Forever veya Infinite kısmını seçerseniz hiç durmadan Thread’ler kendini tekrar eder ve çalışır siz JMeter'da kendiniz Stop demediğiniz sürece.

Bu bilgilere dayanarak bir senaryo üretecek olursak; örneğin maksimum 250 kullanıcı ile tek seferde 5 ve katları olacak şeklinde kullanıcı artırarak toplamda kesintisiz 10 dakika test yük testi yapmak istiyorum dediğinizde oluşturacağın Thread Group senaryosu aşağıdaki gibi olmalıdır.

Performans Testi Aracı Apache JMeter’da REST API Servis Senaryosu Oluşturma Rehberi 1

Number of Threads (Users): 250
Ramp-up period (Seconds): 5
Loop Count verilmeyecek onun yerine Forever veya Infinite işaretli olacak. Yukarıdaki zaman 10 dakika olunca manuel Stop tuşuna basılacaktır.

Son olarak Action to be taken after a Sampler error sekmesinden bahsedecek olursak; Thread Group’un içinde bulunan Thread’lerin (User’ların) bir Sampler hatası ile karşılaşıldığında ne yapmaları gerektiği ayarlanır. Default değer Continue’dur. Örneğin HTTP Request Sampler sunucuya bir istek göndermiş ve 60 saniye boyunca sunucudan cevap alamamışsa işlemi başarısız olarak değerlendirir. Continue seçildiğinde ilgili Thread bir sonraki adıma geçer. Burada bir sonraki Loop’a başlamak seçilebileceği gibi, ilgili Thread (User) veya test bütünü ile durdurulabilir. JMeter ile yük, performans testi yapıldığında bu ayar duruma göre Continue olarak işaretlenebilir. Fonksiyon testi yapıldığında ise ayarın Stop Test olarak işaretlenmesi uygun olacaktır.

Buradaki ayar Default'da Continue olup açıklaması ise Thread hata aldığında bile yük testine devam etsin demektir. Temelde bu sekmenin amacı da Thread hata aldığında ne yapacağı olmasıdır. Komple Stop Test diyebilirsiniz veya Continue diyerek teste devam edebilirsiniz.

Eğer ki Loop Count kısmına 1 değil de 2 veya 3 verecek olursanız en köşedeki sarı ünlemin sağındaki gri buton test başlayınca yeşil olacaktır ve bitince tekrar gri olacaktır. Eğer oradaki sayılar sabit kalsa bile buton yeşil ise asla Stop tuşuna manuel basmayınız çünkü yük testi devam etmektedir ve arka planda Request göndermektedir, ne zaman buton gri olursa test bitti anlamına gelecektir.

İkinci makalemde HTTP Header Manager ile devam edeceğim.

Burak AVCI

Hiç yorum yok:

Yorum Gönderme