Koray PEKER
Menu
  • Anasayfa
  • Kütüphane
  • Kategoriler
    • Java
    • Spring
    • Tasarım Şablonları
    • Git
    • Maven
    • ORM Çatıları
    • VCS
    • SDLC
    • DevOps
    • Algoritma
    • Eğitim
    • Diğer
  • Hakkımda
Menu

Yük Testi ve SoapUI

24 Mart 201913 Ekim 2019 tarihinde yayımlandı

 

Köprü tasarlayan bir mühendis olduğunuzu düşünün. Bu köprüyü tasarlarken nelere dikkat ederdiniz ?

Köprünün üzerinden geçebilecek maksimum araba sayısını ve bu arabaların ortalama ağırlığını hesaplardınız. Benzer şekilde yazılım dünyasında da, uygulamalar belirli bir eşzamanlı kullanıcı yükü için tasarlanmıştır. 

 

Yük Testi (Load Test) Nedir ? 

Yük testi, sistemin belirli bir yük altında davranışını değerlendirmek için yapılan belirli bir performans testi şeklidir. Yük testi sırasında, yanıt sürelerini, verimi, sunucu koşullarını ve daha fazlasını izleyebilirsiniz. Bu test, birden fazla kullanıcı aynı anda eriştiğinde uygulamanın nasıl davranacağını belirlemeye yardımcı olur. 

Yük Testi Senaryoları

Bir API’yi yük testine sokarken, API’nın olası yük altında nasıl işlediğini görmek için farklı yüklenme stratejileri kullanmanız gerekir.

Yük testlerinizin yanıtlaması gereken bazı sorular:

  • API ile aynı anda kaç kullanıcı çalışabilir?
  • Kullanıcılar API ile ne kadar süre çalışabilir?
  • Çok sayıda kullanıcı API ile uzun süre çalışacaksa ne olur?
  • API’nin işleyemediği ani bir kullanıcı artışı olursa ne olur?

SoapUI Nedir ? 

“Bir yazılımcının Sırf Çantası” yazısında SoapUI’in kesinlikle yazılımcının çantasında olması gerektiğini belirtmiştik. SoapUI, açık kaynak kodlu API test aracıdır. Arayüzü hem teknik hem de teknik olmayan kullanıcıların sorunsuzca kullanmalarını sağlamaktadır. 

Daha çok webservis testlerinde kullanılan soapUI, SOAP, REST, HTTP, JMS, AMF ve JDBC gibi birçok protokolü de desteklemektedir. Çok hızlı bir şekilde yük testleri de hazırlamaya imkan vermektedir. 

Örnek API Tasarlayalım

Basit bir SpringBoot projesi oluşturarak yük testi yapacağımız servisimizi yazalım. Rastgele olarak 0-5 sn’ye kadar servisden cevap dönecek şekilde kodumuzu yazdık ve uygulamamızı ayağa kaldırdık. Artık yük testi yapmaya hazırız. 

Java
1
2
3
4
5
6
7
8
9
10
11
@RestController
public class LoadTestController {
 
    @GetMapping(value = "/runLoadTest", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<String> run() throws InterruptedException {
        double randomNumber = Math.random();
        long sleepDuration = (long) (5000L * randomNumber);
        Thread.sleep(sleepDuration);
        return ResponseEntity.ok("OK");
    }
}

SoapUI ile Yük Testi Nasıl Yapılır ?

SoapUI kullanarak webservisimizi tanımladık.Test case’ini oluşturduktan sonra son olarak yük testi oluşturuyoruz ve yük testlerimizi yapmaya başlıyoruz.

Eş zamanlı 20’şer olarak 1 dakika boyunca toplamda 467 sorgu yaptık ve min cevap verme süresi 24 milisaniye iken maksimum cevap sürmesi 5 sn oldu ve ortalama cevap verme süresi 2.493 sn’ dir. Soap UI yük testi ekranındaki parametrelerinin detaylı anlamlarını buradan okuyabilirsiniz. Farklı stratejiler ile yük testlerinizi yapabilirsiniz. 

Başka Yük Testi Araçları 

Web uygulaması performansını ve yük stresi kapasitesini ölçmek için en yaygın kullanılan performans testi araçlarının listesi aşağıdaki gibidir. Listede lisanslı performans test araçlarının yanı sıra açık kaynak kodlu araçlar da bulunmaktadır.

  • Apache JMeter
  • Loadium
  • Grinder
  • Gatling
  • Tsung
  • WebLOAD
  • LoadNinja
  • SmartMeter.io
  • LoadView
  • LoadUI NG Pro
  • ve daha fazlası … 

Kaynaklar

  • https://www.soapui.org/load-testing/concept.html
  • https://www.3pillarglobal.com/insights/load-testing-with-soapui-2
  • https://www.tutorialspoint.com/soapui/soapui_load_testing.htm
  • https://searchsoftwarequality.techtarget.com/tip/Testing-web-services-performance-with-soapUI
  • https://learnsoapui.wordpress.com/2011/08/29/load-testing-with-soapui/
  • https://www.soapui.org/load-testing/reference/loadtest-window.html

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

POPÜLER YAZILAR

  • Çalışma Masam
  • Bir Yazılımcının Sırt Çantası
  • Modern Veri Tabanları
  • CI (Continuous integration) ve CD (Continuous Delivery/Deployment)
  • NullPointerException’dan Kaçış
  • Java Branching Statements (Dallanma İfadeleri)
  • İlk işime veda :(
  • Yük Testi ve SoapUI
  • Project : Lombok
  • Enumeration nedir ?

Ara

Son Yazılar

  • Çalışma Masam
  • Apache Kafka
  • Postman API’ları Görselleştirme
  • MongoDB Cheat Sheet
  • Splunk 101 – Giriş
  • Yük Testi ve SoapUI
  • Modern Veri Tabanları
  • Senior Stajyer ?!
  • API Dokümantasyon Önemi ve Swagger
  • Kod Tekrarı(Code Duplication) ve DRY

TAKİP ET

©2025 Koray PEKER