Birkaç kez test HTTP sunucuları/web uygulamaları yüklemek zorunda kaldım ve her seferinde bulabildiğim araçların kalitesi beni çok etkiledi.
Yani, bir HTTP sunucusunu yüklerken, hangi araçları kullanıyorsunuz? Ve bir dahaki sefere yapmamda büyük olasılıkla yanlış yapacağım şeyler neler?
JMeter ücretsizdir.
Mercury Interactive Load Runner süper güzel ve süper pahalı.
Mevcut şirketimin web sunucularımızla aynı anda 25.000 bağlantıyı simüle etmesi gerektiğinden (çevrimiçi reklamlar sunuyoruz) bu soruyu cevaplamak için olağandışı hissediyorum.
Son derece yüksek hacimli yük testi için Httperf gitmenin yolu budur. Ücretsizdir ve deneyimlerimize göre, JMeter veya STA'nın aynı donanımda daha eşzamanlı bağlantılarını simüle edebilir.
Merak ediyorsanız, düşük güçte, ucuz, ultra küçük form faktörlü Optiplex 330'da saniyede 3500 istek simülasyonu yapıyoruz. Bu küçük kutular sadece 280 dolara mal oluyor ve bunların bir kısmı çalıştırmak için bağlanıyor İsteğe bağlı Httperf. Karşılaştırıldığında, JMeter bu donanımda sadece 800-900 req/sn itebilir.
Bir web sunucusunda aynı anda tek bir URL'ye yük atmak istiyorsanız Apache AB'yi indirin. Apache HTTP sunucusu ile birlikte gelir.
Basit komut
ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers
10 kullanıcının eşzamanlılığı ile 10000 istek çalıştırır.
Tarama oturumlarını kaydetmek istiyorsanız, oy verin ve jmeter yanıtını kabul edin. Jmeter inanılmaz ve büyük yük atabilecek birçok test makinesine ölçeklenebilir.
Hızlı bir test için bukleler dizilerini ve URL gruplarını kullanabilirsiniz. Diyelim ki Google'a karşı yük stres testi uygulayacağız ...
curl -s "http://google.com?[1-1000]"
Bu, google yani 1000 çağrı yapacak.
http://google.com?1 http://google.com?2 http://google.com?3 ... http://google.com?1000
Farklı testler ayarlamanız gerekir:
Her testten sonra/önce, platformu önceki gibi geri koymalısınız: veritabanını geri yükleyin, belleği ve önbelleği temizlemek için yeniden başlatın.
Ayrıca bir ısınma uygulayacaksınız: Gerçek testten önce senaryoları bir kez başlatın, böylece web sayfaları derlenir, veritabanına bağlantı yapılır. Aksi takdirde, ilk arama istatistiklerinizde her zaman kötü olur.
Karmaşıklık ekleyebilirsiniz, örneğin:
Son bir önemli şey: Tamamen aynı senaryoyu tekrar aynı şekilde yapabilmek için tüm tamamlanmış senaryoları kaydetmeniz GEREKİR, böylece performansı önceki testlerle karşılaştırabilirsiniz.
Sadece birden fazla bağlantıyı nasıl ele aldığını test etmek istiyorsanız Siege gibi bir şey kullanabilirsiniz. Yine de büyük bir önlem olduğundan emin değilim ama en azından birden fazla bağlantıyı nasıl ele aldığınızı size söyleyecek
openSTA kullandım.
Bu, nispeten basit bir komut dosyası dili kullanır.
Web hizmetlerini/sunucularını kolayca test edebilir ve kendi komut dosyalarınızı yazabilirsiniz.
Komut dosyalarını istediğiniz şekilde bir testte bir araya getirmenize ve yineleme sayısını, her yinelemedeki kullanıcı sayısını, her yeni kullanıcıyı tanıtmak için rampa süresini ve her yineleme arasındaki gecikmeyi yapılandırmanıza olanak tanır. Testler gelecekte de planlanabilir.
Açık kaynak kodlu ve ücretsiz.
Bir e-tabloya kaydedilebilecek bir dizi rapor üretir. Ardından, sonuçları kolayca analiz etmek ve grafik haline getirmek için bir pivot tablo kullanıyoruz.
Daha önce LoadRunner'ı kullandım, ancak oldukça pahalı, Microsoft'un Test Testleri sürüm araçlarını da yük testleri yürüten bir sistem içeren kullandım. Aracın nasıl çalıştığından oldukça memnun kaldım ve testleri daha sonra LoadRunner'dan almak için daha kolay bir sözdizimi olan .net kullanarak genişletebilirsiniz.
Kullandığımız yük koşucusu sürümü de AJAX sitemizi işleyemedi (Bu 2000 yılında geri döndü, bu yüzden aracın şimdiye kadar geliştirildiğinden eminim)
WAPT kullanıyoruz ve çok iyi çalışıyor. Kurulumu kolay ve sadece birkaç yüz dolar. LoadRUnner gülünç bir şekilde overpriced ve Forutune 500 hariç herkes için tamamen ulaşılamıyor.
Senaryonuzun ne kadar karmaşık olduğuna bağlıdır.
Gerçek kullanıcıların sunucunuzdaki yükünü doğru bir şekilde simüle etmek için kullanıcıların gerçekte ne yaptığını simüle etmeyi denemelisiniz. Kullanıcılarınız sunucuya bir URL ile vurursa, ücretsiz/basit araçlardan herhangi biri bunu yapar.
Biraz daha karmaşık web sitesi için, dinamik değer korelasyonu, parametreleştirme vb. Konularında size yardımcı olacak bir araç kullanmak istersiniz. Load-Runner ve benzerlerini kullanabilirsiniz, WebLOAD =.