Bir önceki makalemizde Web Testi ile test senaryosunu oluşturmuş ve yük testi için hazır hale gelmiştik. Load Test/Yük testi, uygulamanın farklı senaryolarda sergileyeceği performansın ölçülmesini sağlayan bir test yöntemidir. Çoğu zaman, eğer uygulamamız tek bir makinede çalışıyorsa, performansı hakkında bir fikir sahibi olabiliriz. Fakat web uygulaması gibi performansın etkilenebileceği pek çok faktörün bir araya geldiği durumlarda, uygulamamızı ancak yük testinden geçirerek sonuçlarına göre iyileştirmeler yaptıktan sonra daha sağlıklı fikrimiz olur.
Visual Studio içerisinde gelen yük testi, farklı tarayıcılarla, farklı kullanıcı profilleri için hafif ve ağır yük senaryolarını oluşturabilecek pek çok özellik içermektedir. Bunu, yerel makinemizde basitçe uygulayabileceğimiz gibi (gerçekçi sonuçlar vermeyebilir), pek çok farklı makineyi dâhil ederek de (bir “Controller”, bir veya birden fazla “Agent”) uygulayabiliriz.
Yük Testi Oluşturulması
Daha önce oluşturduğumuz test projesi içerisinde, yeni test ekleme ekranını açıp, yük testini seçelim.
Yük testinin adını girdikten sonra ekranı kapatalım. Karşımıza, yük testinin en genel özeliklerini ayarlayabileceğimiz bir sihirbaz gelecektir.
Sihirbazda açılış ekranı sonrasında, aşağıdaki ekran görüntüsünde olduğu gibi, yük testi adını girebileceğimiz bir giriş kutusu ve altında sanal kullanıcılar için, senaryoların çalıştırılması sırasında kullanılacak bekleme süresi girilebilir. Bu bekleme süresinin, Visual studio tarafından yorumlanıp değişkenlik göstermesini veya devre dışı kalmasını istiyorsak, gösterilen üç profilden uygun olanını seçmemiz gerekir.
Bir sonraki adımda ise, yük deseni belirlenir. Burada iki tip yük deseni mevcuttur. İlki “Constant Load” (Sürekli yük) olup, yük testinin başlaması anında, belirlenen sanal kullanıcı sayısı kadar kullanıcı hemen yaratılır ve yartılan her kullanıcı aynı anda yük oluşturmaya başlar.
İkinci seçenek olan “Step Load” test, belirlenen aralıklarla arttırılan sanal kullanıcı sayısına bağlı yük testidir. Burada; “Start User Count” yük testi başlar başlamaz aktif olup yük yaratacak kullanıcı sayısıdır. “Step duration” saniye cinsinden bir değer olup, belirtilen süre kadar sonra, “Step User Count” değerindeki sanal kullanıcı sayısını sisteme yükler. “Maximum user count” ise, en fazla yaratılması gereken kullanıcı sayısını gösterir.
Bir sonraki adımda ise, test karışım modeli seçilir. Burada üç seçeneğimiz vardır.
- “Based on the number of tests“: Seçilen test senaryoları, “Test Mix” adımında verilen oranlar doğrultusunda paylaştırılarak çalıştırılır.
- “Percentage Based on Virtual Users”: Sadece “Test Mix” adımında belirtilen oran doğrultusunda çalıştırılmayıp, yük biçimi adımında belirlenen yöntem de kullanılarak, mutlaka verilen süre içerisinde belirlenen sayıda sanal kullanıcı yaratılıp yük oluşturulur.
- “Based on user pace”: Test karışımında olan her testin her bir kullanıcı tarafından çalıştırılma oranı belirlenir. Örneklemek gerekirse;
- A testi: Bir sanal kullanıcı bir saatte 4 test
- B testi: Bir sanal kullanıcı bir saatte 2 test
- C testi: Bir sanal kullanıcı bir saatte 0.125 test
-
gibi değerler verilebilir. Dolayısıyla Visual Studio, belirlenen testlerin en fazla ne kadar sürmesi gerektiğini hesaplayıp, bu süre zarfında sonlanmayan testler için hata döndürür.
Açılan ekrandan “Add” tuşuna basıp, test seçim ekranı açılır ve yük testine dâhil olması istenen “webtest” eklenir.
Eklenen “webtest” için çalıştırılma dağılımları aşağıdaki ekrandan girilir. Dağılımların toplamı her zaman 100 olmalıdır. Olmadığı durumda bir sonraki adıma geçmenize izin verilmez.
Ek olarak bu adımda, açılış ve kapanış için sadece bir kez çalıştırılmak istenen “webtest” girilebilir. Dolayısıyla web uygulamanız, sayfaların çalışabilmesi için mutlaka giriş bilgisine ihtiyaç duyuyorsa (örn: forms authentication), uygulamanızın giriş sayfası için üretilen “webtest” senaryosunu, “initialization test” olarak seçebilirsiniz. Böylece, her sanal kullanıcı önce bu adımdan geçip gerekli oturum bilgilerini oluşturduktan sonra, test senaryolarını çalıştıracaktır.
Bir sonraki adımda, tarayıcı tipi dağılımını belirleyebilirsiniz. Uygulamanızın çalışmasını istediğiniz tarayıcı tip / sürümlerini seçip ekledikten sonra gerçekte kullanımı göz önünde bulundurarak dağılımlarını düzenleyebilirsiniz.
Bir sonraki adımda yine benzer şekilde, bağlantı tiplerini seçebilirsiniz. Hizmet vereceğiniz bölgedeki ISP hızlarını dikkate alıp uygun olan bağlantıları eklemeniz, gerçek hayat simülasyonu yapmanız anlamında önemlidir. Buna ek olarak, uygulamanız hem Internet hem de intranet ortamından kullanılacaksa, LAN bağlantısını da ekleyip, intranet kullanıcılarının toplam kullanıcı sayısına oranına göre bu bağlantının dağılımını da belirleyebilirsiniz.
Bir sonraki adımda, varsayılan değerlerle kullanılacak sayaçlar ve bu sayaçların hangi makinelerde kullanılacağını belirleyebilirsiniz. Varsayılan değerleri incelediğimizde, “Controller” ve “Agent” servislerinden metriklerin toplanabileceğini görürüz. Bunlara ek olarak, servis kurmadan metrik toplamak istediğimiz sistemlerimiz varsa, bunun için “Add Computer” tuşuna basıp, ilgili makineleri sırasıyla eklememiz gerekir.
Not: Servislerin kurulmadığı ve/veya erişim haklarının yönetici seviyesinde olmadığı durumlarda, test sırasında metrikler toplanamayabilir.
Son olarak, yük testi çalışma süresinin neye göre belirlenmesi gerektiğini düzenleyeceğimiz adıma gelmiş oluruz. Bu adımda yük testi süresi iki şekilde planlanabilir.
- Çalışma süresi
- Iterasyon sayısı
Çalışma süresi olarak planlanmak istediğimiz zaman, yük testi bilgilerinin tamamlanabilmesi için en azından, “Run Duration” (çalışma süresi) girişinin yapılması zorunludur. “Warm-up duration” (ısınma süresi), “Constant Load” veya “Step Load” test seçildiğinde başlangıç için belirtilen sanal kullanıcı sayısına ulaşmak için geçmesi gereken süredir. Bu değerler girilmediği durumda (varsayılan sıfırdır), test hemen başlatıldığı gibi eş zamanlı bir şekilde başlangıç kullanıcı sayısı kadar sanal kullanıcı yaratılmaya çalışılır.
Iterasyon sayısı olarak planlamak istediğimiz zaman ise, toplamda çalışmasını istediğimiz test sayısını belirlemiş oluruz. Bu sayı çerçevesinde, gerekli sanal kullanıcı sayısını visual studio kendisi belirler. Çalıştırılan testlerin uzunluğu ve yük deseni için belirlenen parametreler de bu sayının belirlenmesinde rol oynar.
Ali KALFAOĞLU
Her ne kadar eski bir blog yazisi olsa da isime yaradi. Tesekkürler.
YanıtlaSilArkadaşlar ellerinize sağlık çok güzel bir çalışma teşekkürlerreplika telefonlar
YanıtlaSil