Preparation to Basic Load Test Scenerios With Jmeter [TR]

TEMEL JMETER KULLANIMI

Apache Jmeter Nedir?

  • Apache JMETER, java programlama dili ile geliştirilmiş, çeşitli web uygulama hizmetlerinin performansını analiz etmek, ölçmek ve yük testi gerçekleştirmek için kullanılan ücretsiz bir yazılımdır.

JMeter ile Web Uygulama Giriş Yap Fonksiyonu Test Senaryosunun Oluşturulması

  • Başlangıçta yeni bir test planı oluşturulur.

  • Test planına sağ tık yapılarak > Add > Threads bağlantısı eklenerek kullanıcı similasyonu tanımlamaları gerçekleştirilmektedir.

  • Yapılan Tanımlamalar;
    • Number of Threads(users): İstek atacak toplam kullanıcı sayısı. (20 kullanıya ulaşmasını istediğimizi belirttik.)
    • Ramp-up Period: Tanımlanan kullanıcı sayısına kaç saniyede ulaşılacağı belirtilmektedir. (5 saniyede ulaşılmasını istediğini belirttik.)
    • Number of Threads / Ramp-up Period = Saniyede istek atacak kullanıcı sayısı ( 20 / 5 = 4 Kullanıcı )
    • Loop Count: Senaryonun belirtilen tanımlamalar kullanılarak kaç defa gerçekleştirileceği belirtilmektedir. (Forever seçeneği, durdurulana kadar devam etmesini sağlamaktadır.)
  • Thread Group bağlantısına sağ tık yapılarak > Add > Config Element > HTTP Request Defaults bağlantısından ekleme yapılarak,testin gerçekleştirildiği web uygulamasının tanımlamaları yapılmaktadır.
  • Testin yapılacağı web uygulamasına gönderilecek isteklerin gerçekleştirileceği protokol, testin gerçekleştirildiği web uygulamasının IP/Domain adresi ve iletişim kuracağı port tanımlanır.

  • Thread Group bağlantısına sağ tık yapılarak > Add > Config Element > HTTP Cookies Manager bağlantısından eklenmektedir, Cookie Manager ile testin gerçekleştirileceği web uygulamasının cookie politikası belirlenir ve tercihe göre cookie tanımlaması gerçekleştirilir.

  • Bu senaryoda herhangi bir ekstra cookie tanımlaması yapılmayacağından dolayı cookie politikasını varsayılan gelen standart olarak bırakılmıştır.

  • Thread Group bağlantısına sağ tık yapılarak > Add > Logic Controller > Simple Controller bağlantısından ekleme yapılarak, giriş işleminin testi için gerçekleştirilecek post işlemlerinin, iletişim kuracağı controllerların tanımlamalarını oluşturmak için Controller eklenmektedir.

  • Oluşturulan Simple Controller’a sağ tık yapılarak > Add > Sampler > HTTP Request ile test edilecek giriş sayfasının GET isteğinin tanımlanması için eklenmektedir.
  • Protocol, IP/Domain ve Port tanımlamalarına ek olarak yapılan tanımlamalar;

    • İstek gönderilirken hangi metodun kullanılacağı method alanından belirtilmektedir.
    • Testin gerçekleştirileceği login sayfasının bağlantı yolu path alanına eklenmektedir.
  • Http Request ekleme işleminin aynısı POST Requestini tanımlamak için de yapılmıştır.

  • POST işlemini gerçekleştirmek için kullanılan parametreler, giriş sayfasının gönderdiği POST isteği Burp Suite aracı ile kontrol edilerek elde edilmiştir.
  • GET isteğinde yapılan tanımlamalara ek olarak bazı değişiklikler yapılması gerekmektedir;
    • Method POST olarak seçilir.
    • Giriş formuyla beraber gönderilecek parametreler tanımlanır.
  • Kullanıcı giriş işleminin başarı durumunun kontrolü, yalnızca giriş yapmış yetkili bir kullanıcının erişim sağlayabildiği admin paneline, yapılan GET isteği ile gerçekleştirilmiştir.

  • Test sonuçlarını gözlemlemek üzere Test planına sağ tık yaparak > Add > Listener > View Result Tree eklenir.

  • Testin başlatılmasının ardından, View Result Tree üzerinden sonuçlar gözlemlenebilmektedir.
  • Yukarıdaki ekran görüntüsünde görüldüğü gibi giriş işlemi başarılı bir şekilde gerçekleştirilmiştir.

  • Admin paneline gerçekleştirilen GET isteğine dönen yanıt kontrol edildiğinde giriş yapmış kullanıcı adı karşılama mesajında görülmektedir.

  • Daha iyi bir gözlem için test planına sağ tık yapılarak > Add > Listener > Graph Results bağlantısından Graph Results eklenerek sonuçlar grafik üzerinden de incelenebilmektedir.

  • Grafiğin daha net anlaşılması için istek atacak kullanıcı sayısı 100 olarak değiştirilmiştir.

JMETER RECORDING KULLANARAK İSTEKLERİN PROXY ÜZERİNDEN YAKALANMASI

  • Jmeter’in sağladığı kolaylıklardan biri olan Recording ile tarayıcı üzerinden proxy tanımlanarak, senaryo adımlarına ait ilgili istekler basit bir şekilde oluşturulabilmektedir.
  • Jmeter ile beraber hazır olarak gelen Recording Template’i kullanılarak senaryo oluşturulur. (Boş bir senaryo template’i oluşturularak ilgili recording componentleri eklenerek de oluşturulabilmektedir.)
  • İsteklerin gönderileceği sunucu adresini ya da domain name’ini, kaydedilecek output adını ve kullanılacak metod yazılarak proje oluşturulur.
  • Senaryo kaydını başlatmadan önce sayfanın gezileceği tarayıcı üzerinden proxy tanımlamalarının yapılması gerekmektedir.
  • Tarayıcıda ayarlanacak proxy bilgileri yukarıdaki görüntüdeki gibi olmalıdır.
  • Start ile kayıt başlatıldığında yukarıdaki görüntüdeki bilgi mesajı verilmektedir.

  • apache_jmeter > bin > ApacheJMeterTemporaryRootCA.crt sertifika dosyasını tarayıcımıza yükleyerek kaydın başarılı bir şekilde gerçekleşmesini sağlıyoruz.

  • Atacağımız her kayıt isteğinde bu şekilde isimlendirmek yönetilebilirlik açısından oldukça kullanışlı olacaktır.
  • Giriş formunu doldurarak giriş yapıyoruz ve bu işlemleri senaryomuza eklemek istediğimiz bütün sayfalar için gerçekleştiriyoruz.
  • Yorum yapma işleminin gerçekleştirileceği ürün seçilir.
  • Yorumları incelediğimizde herhangi bir yorum eklenmediği görülüyor.

  • Son olarak yorum yapma isteğinin kaydı da eklenerek, stop ile kayıt sonlandırılır.

  • Test senaryosu başlatılarak graph result çıktısı kontrol edildiğinde gerçekleşen işlemler görüntülenecektir.
  • Yorum sayfası kontrol edildiğinde yorum yapma isteklerinin başarılı bir şekilde gerçekleştirildiği gözükmektedir.