« geri

JMeter

testBizler Türk'üz.. Yaptığımız her şey doğrudur ve doğru sonuçlar verir. Bizi kesseniz acımaz. Türk'e bir şey olmaz. Türk'ün yazdığı kod sonsuza dek çalışır, sonsuza gelince "yerim lan sonsuzu" der yoluna devam eder. Türk'ler aslandır, kaplandır, kartaldır, kanaryadır.. En iyi yemekleri Türk'ler yapar, en iyi futbolu Türk'ler oynar...........................dememek lazım..

Genelde yaptığımız şeylerin doğru olduğunu varsayar ve onları kontrol etmeyi (eşeğimizi sağlam kazığa bağlamayı) pek de umursamayız. Eğer bir yazılımcıysanız, yazdığınız kod doğru çalışıyorsa genellikle sorun yoktur. Peki ya çalışmıyorsa ? Sorun çıkmadan müşteriyi sorun çıkabilme ihtimaline karşı tolere edebilirsiniz. Ancak hatalarda (ve bunun düzeltilme süresinde) ne deseniz boş.. Eğer bu işte iyiysek, yazılım bizim için bir prestij meselesi olmalı.... "Kodumu yazarım, paramı alırım" mantığından kurtulmamız lazım. Özellikle aynı proje üzerinde birden fazla kişi çalışıyorsa test yapmak kaçınılmaz bir durumdur.

Parkyeri'nde aktif olarak geliştirme yaptığımız projeler için test maddelerimiz (bizim deyimimizle test kâselerimiz) var. Test dediğimizde genellikle insanın aklında soyut şeyler kalıyor ve tam olarak ne yapıldığı iyi algılanamıyor. Basitçe yaptığımız şey, "Ana Sayfa'daki arama kutusu çalışıyor mu ?", "Satış sırasında X, Y, Z özellikleri seçildiğinde doğru ürünler geliyor mu ?", "Ödeme şekli, ödeme sonrasında gönderilen bilgilerde doğru bir şekilde belirtiliyor mu ?" gibi senaryoları kontrol edip çalıştığından emin olmak. Basit gibi duruyor, öyle değil mi ? Örneğin bir e-ticaret sitesi düşünelim. Bu tür test kâselerinden oluşan oldukça uzun bir listeyi test etmeli, hatta zaman zaman derinlere inip fonksiyonların doğru çalıştığından emin olmalısınız. Üstüne bir de oluşturduğunuz sürüm paketinin, farklı yapıya sahip bir başka makine üzerinde çalışma zorunluluğunu gözetmelisiniz. Debian Woody ile Etch arasındaki PHP, MySQL vb. farklar başınızı oldukça ağrıtabilir.

Yaptığımız her iş sonrası, listemize yeni test kâseleri ekledikçe gördük ki, iş artık kontrol edilmesi ve test edilmesi oldukça zor olan bir noktaya ulaşmış. Bu sebeple mümkünse testleri otomatik olarak yapıp bizi sonuçlarla bilgilendiren bir sistem gerekiyordu. Yaptığınız projenin gerçekten kaliteli olmasını istiyor ve başınızı minimum derecede ağrıtmasını istiyorsanız ihtiyacınız olan anahtar kelimelerden bazıları: unit test, jmeter, selenium.. Bizim amacımız, son kullanıcının siteyle etkileşiminde çıkması muhtemel olan sorunları bulup ortadan kaldırmak.. Yazdığımız test kâseleri bunlara yönelik olduğundan en ideal araç (bizce) JMeter.. (Selenium ile Firefox içerisinden tıklayarak yaptığınız şeyleri kaydedebilir sonra da olması gereken senaryoları işletebilir, hataları bulabilirsiniz. JMeter biraz daha detaylı ve kullanışlı kaldığından biz onu tercih ettik.)

JMeter kullanarak yukarıda yazdığıma benzer test kâselerini taklit edebiliyor ve sonuçlarını görebiliyoruz. Örneğin yine e-ticaret sitesi örneğinden gidersek, sitede olduğunu bildiğimiz bir ürünü aratarak arama yaptığımızda çıkıp çıkmadığına JMeter ile bakabiliyoruz. Bunun dışındaki durum için düşünürsek bir ürün ya vardır ya da yoktur. Her iki durum için de gösterdiğimiz durum mesajları dışında bir mesaj ile karşılaştığımızda JMeter testi başarısız olarak işaretliyor ve durumdan bizi haberdar ediyor.

JMeter'ın kullanımıyla ilgili bir video'yu şuradan izleyebilirsiniz. Yakında ben de benzer bir video hazırlamayı düşünüyorum. Böyle bir durumda buraya bağlantısını koyarım. Bu arada JMeter'ın Java ile yazıldığını; Linux, Windows, Mac OS X gibi işletim sistemlerinde sorunsuz çalışabildiğini, veritabanı, stres testi vb. amaçlarla kullanabileceğinizi de ekleyeyim.




s
11.03.2008, 08:42

iyi de jmeter, fonksiyonel ya da birim testler için degil, performans testleri icin. yani kodcunuz, "abi gece gunduz ugrastim arama fonksiyonu icin" diyip sonra da statik bir cikti gonderdiginde jmeter testini gecmis sayilacak. tabi sacma bir durum bu ama mantalite olarak yaklasimin yanlis oldugunu gostermesi acisindan onemli. yani yakalayabildiginiz sadece görünürlük. mesela hata nereden kaynaklanıyor (hangi fonksiyondan dolayı mesela) kaciriliyor. bunlari komple kacirmadan yapabilecek araclar da var. php icin bu seviyede bir sey var mı, bilmiyorum tabi (gerci php gibi zırva bir dil kullanarak zaten basta hata yapılmış ama :grin)

Onur
24.06.2008, 07:37

"Additionally, JMeter can help you regression test your application by letting you create test scripts with assertions to validate that your application is returning the results you expect. For maximum flexibility, JMeter lets you create these assertions using regular expressions." JMeter User's Manual'dan alıntıdır. Yani JMeter'ın kullanım alanı "sanıldığı gibi" sadece performans testleri ile sınırlı değildir.

:
:
:
Giriş yapmamış kullanıcıların,
   » tüm yorumları moderasyondan geçer.