Welches (n) Werkzeug (e) für einen ziemlich komplexen Stresstest einer Webanwendung [geschlossen]

8

Ich bin Teil eines Teams, das ein neues webbasiertes Produkt für unser Unternehmen entwickelt. Während wir ziemlich positiv sind, wird die Anwendung perfekt mit unserem erwarteten Durchschnitt von 10-50 gleichzeitigen Benutzern funktionieren. Wir müssen sicherstellen, dass sie auch für 1000 gleichzeitige Benutzer korrekt funktioniert.

Unser Hauptanliegen ist das Laden und Anzeigen verschiedener Dokumente aus dem Dateisystem. Um die Dateien zu erhalten, müsste sich der Benutzer anmelden, zu einer Suchseite navigieren, auf den Abschluss einer Suche warten, dann auf einen Link klicken und warten, bis das Dokument geladen ist.

Wir haben SilkTest / TestPartner, das so konfiguriert werden kann, dass es die obigen Schritte durchläuft, aber ich glaube nicht, dass diese Tools realistisch dazu verwendet werden können, die Last in dem Maße zu simulieren, wie wir es benötigen.

Können Sie einige (vorzugsweise kostenlose / Open-Source-) Programme vorschlagen? Kommerzielle Produkte sind kein No-Go, aber der Preis kann nicht enorm sein:)

Vielen Dank im Voraus!

    
Sk93 09.09.2010, 07:56
quelle

8 Antworten

2

Verwenden Sie das Benchmark-Tool von Apache ab .

Aus Wikipedia: ApacheBench :

  

ApacheBench ist ein Befehlszeilencomputer   Programm zur Messung der Leistung   von HTTP-Webservern, insbesondere der   Apache HTTP Server. Es wurde entworfen, um   geben Sie eine Vorstellung von der Leistung, die a   gegebenen Apache-Installation bieten kann.   Insbesondere zeigt es wie viele   Anfragen pro Sekunde der Server ist   fähig zu dienen.

Sie können es mit Cookie / Wert-Paaren eines angemeldeten Benutzers versehen und auf die Such-URL verweisen, mit der Fähigkeit, gleichzeitige Verbindungen zu simulieren, um gleichzeitige Benutzer zu simulieren.

    
aularon 09.09.2010, 07:58
quelle
5

die Mühle für Java-Apps: Grinder

    
NimChimpsky 09.09.2010 12:54
quelle
2

Apache JMeter würde Ihr Szenario definitiv unterstützen und unterstützt Verteiltes Testen (pdf) Dies ist ein Modus, in dem Sie mehrere Agenten auf verschiedenen Maschinen ausführen und so skalieren können, um eine hohe Anzahl gleichzeitiger Benutzer zu simulieren.

    
Pascal Thivent 09.09.2010 12:56
quelle
2

Sie könnten den Web Performance Load Tester ausprobieren - es handelt sich um ein Produkt zum Testen von Lasten im mittleren Preissegment. Es ist viel billiger als SilkPerformer oder LoadRunner und viel produktiver. Es ist nur auf Webprotokolle beschränkt, aber das hört sich nicht so an, als wäre es ein Problem für Ihre Anwendung. Es gibt Videos auf der Website, die Ihnen ein gutes Gefühl für das Tool geben: Ссылка

(Haftungsausschluss: Ich arbeite für Web Performance und verwende das Produkt fast jeden Tag)

    
CMerrill 09.09.2010 17:14
quelle
1

Es gibt auch httperf:

Ссылка

    
Nev Stokes 09.09.2010 08:07
quelle
1

Ich empfehle Ihnen, das Microsoft Web-Kapazitätsanalyse-Tool (WCAT ) . Es kann auf mehreren Rechnern gleichzeitig laufen, und jeder der Clients kann mehrere "virtuelle Clients" haben, so dass sie mehrere Verbindungen zu einem Webserver simulieren können. Es kann sich mit jedem Webserver verbinden (der von einigen Apache-Fanatikern benutzt wird), aber natürlich integriert es sich am besten mit IIS.

Es wurde vom IIS-Leistungsteam entwickelt und wird von Microsoft zum Testen des IIS-Servers verwendet. Es hat sowohl x86- als auch x64-Versionen, und es ist einfach, eigene Erweiterungen zu erstellen.

Es funktioniert folgendermaßen: Sie erstellen eine Szenario-Datei, mit der Sie eine beliebige Anzahl von HTTP-Anfragen beschreiben können. (Es verfügt über Optionen für GET, POST und HTTPS-Unterstützung.) Sie können diese Anforderungen dann in Transaktionen gruppieren, die eine Reihe von Anforderungen zur Simulation von Benutzerinteraktionen darstellen. Jeder virtuelle Client führt jeweils eine einzelne Transaktion aus und wartet, bis die aktuelle Anforderung abgeschlossen ist, bevor die nächste ausgeführt wird.
Es ist einfach, eine Transaktion zu schreiben, die eine Reihe von Anfragen enthält, die Benutzer simulieren können, die auf Dinge "klicken". (Es ist auch möglich, zwischen den Anfragen für eine gewisse Zeit zu "schlafen" und so einen Benutzer zu simulieren, der die Seite liest.)

Hier ist die offizielle Einführung:

  

Das Web-Kapazitätsanalyse-Tool (WCAT) ist ein   Leichtes HTTP-Lastgenerierungstool   hauptsächlich entworfen, um das zu messen   Leistung eines Webservers innerhalb eines   kontrollierte Umgebung. WCAT kann   Simulieren Sie Tausende von gleichzeitigen Benutzern   Anfragen an eine einzelne Website stellen   oder mehrere Websites. Das WCAT   Engine verwendet ein einfaches Skript zum Definieren   der Satz von HTTP-Anforderungen, die wiedergegeben werden sollen   zurück zum Webserver. Erweiterbarkeit   wird durch Plug-in-DLLs und a bereitgestellt   Standard, einfache API.

Vielleicht ist es der einzige Nachteil, dass es zunächst etwas komplizierter ist. Es ist ein Kommandozeilen-Tool, so dass es auch ein bisschen zu leicht ist, mit den Parametern zu vermasseln.

    
Venemo 09.09.2010 12:37
quelle
0

Für komplexe Sites können Sie WebLOAD verwenden. Es ist nicht kostenlos, aber auch nicht zu teuer.

    
Yasei No Umi 13.12.2010 09:12
quelle
0

Welches finanzielle Risiko besteht, wenn die Anwendung nicht funktioniert / skaliert?

Wie hoch ist der finanzielle Wert der Ausgabe der Leistungstests, wenn es darum geht, die bestehende Anwendung live zu schalten oder zu ändern?

Wie hängen die finanziellen Auswirkungen und der Wert der Ausgabe der Tests mit Ihren Werkzeugkosten zusammen?

Wenn das Risiko im Allgemeinen hoch genug ist, um einen Leistungstest zu rechtfertigen, wird der Wert der Ausgabe eines soliden Leistungstests die Kosten eines zur Durchführung des Tests eingesetzten Tools in den Schatten stellen. Der Vorbehalt hier ist, dass Sie bereit sein müssen, einen soliden Leistungsingenieur an Bord zu bringen, um die Tests zu entwerfen und durchzuführen, denn selbst die am wenigsten teuren Test-Tools können einen erheblichen negativen ROI mit einer unzureichend ausgebildeten Person an der Körperverletzung verursachen (und es passiert die ganze Zeit).

    
James Pulley 06.11.2013 15:42
quelle