Apache JMeter: Web Uygulamamızın Yük Testlerini Nasıl Yaparız? (3): İleri Düzey

Apache JMeter ile ilgili olarak başlattığımız yazı dizisine devam ediyoruz. Bu yazıda Apache JMeter’in biraz daha ileri düzey özelliklerini inceleyeceğiz.

Bildiğiniz gibi, asp.net mvc uygulamalarında yer alan, csrf’i (cross-site request forgery) engelleyen antiforgerytoken ifadesi var; Visual Studio’nun hazır ürettiği login action’unda görüldüğü üzere:

JMeter testlerini yazarken, bu kontrolü nasıl aşarız?

İkinci yazımızda, web sayfamızın index ve kişi listesi isimli sayfalarımızın testlerini yazmıştık. Testimizi daha da geliştirmek için, bir döngü denetçisi ekleyelim. Döngü denetçisi, adı üstünde her kullanıcı için bir döngü çalıştırmamıza yarar.

jmeterdongudenetcisi

Özelliklerini de set edelim (Kullanıcı Tanımlı Değişkenlerde belirttiğimiz RequestsPerUser değişkenini kullanıyoruz):

jmeterdongudenetcisi2

Döngü denetçisinin içerisine yeni bir http isteği ekleyelim.

jmeterkisilistesiasync

Daha önce Kişi Listesi testini eklemiştim. Bu testin farkı, bir async controller actionunu çağırması. Asp.net uygulamasında normal bir action ile async action çağrılması arasında fark var mı, bunu görmek istiyoruz.

Başka bir test daha eklemek istiyoruz: Kişi Listesi (Authorized). Bu sayfaya sadece, login olmuş kişiler ulaşabilir:

jmeterkisilistesiauth

Kişi Listesinin doğru çalışıp çalışmadığını görmek içinde Cevap Doğrulaması ekleyelim:

jmetercevapdogrulamasi

Cevap doğrulaması:

jmetercevapdogrulamasi2

Şimdi testimizi çalıştıralım. Sonuçları gösterme ağacına baktığımızda, Authenticate olmadığımız için, hata aldığımızı görürüz:

jmetersonuclarigostermeagaci2

Asp.net web uygulaması, Kişi Listesi (Authorized) sayfasına bağlandığımızda, login olmadığımız için otomatik olarak bizi login sayfasına yönlendiriyor bu yüzden cevap doğrulaması hata veriyor.

Login sayfası ekleyerek bu sorunu çözmeye çalışalım:

jmeterloginpost

Testlerimizi tekrar çalıştırdığımızda login (post) testi hata verecektir. Sonuçları gösterme ağacında, cevap verisinde hata:

Bu sorunu aşmak için, __RequestVerificationToken değerini post parametreleri içerisinde göndermemiz gerekiyor.

__RequestVerificationToken değerini almak için Login sayfasını önce get etmemiz gerekiyor.

jmeterloginget

Metod değerinin get olduğuna dikkatinizi çekiyorum. Login sayfasından __RequestVerificationToken değerini okumak içinde, Düzenli İfade Çıkarıcı kullanmamız gerekiyor:

jmeterduzenliifade

Değerlerini aşağıdaki şekilde set edelim:

jmeterduzenliifade2

Düzenli ifade:

Tekrar Login (Post) isteğine dönelim ve aşağıdaki gibi değişikliğimizi yapalım:

jmeterloginpost2

Bu şekilde ayarlamalarımızı yaptıktan sonra, tekrar testlerimizi çalıştıralım.

Artık tüm testlerimizin geçtiğini görebiliriz.

Diğer bir konuda, proxy kullanarak, http isteklerini elle yazmadan otomatik olarak nasıl yakalayabileceğimiz üzerinde olacak. Bunu da gelecek olan yazımızda işleyelim.

1 düşünce - “Apache JMeter: Web Uygulamamızın Yük Testlerini Nasıl Yaparız? (3): İleri Düzey”

  1. Pingback: Apache JMeter aracı ile Yük Testleri Nasıl Yapılır

Yorum Gönder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir