it-swarm.com.de

Der beste Weg, um eine Website auf Stress zu testen

Dies mag die falsche Frage sein, aber wie lässt sich eine große Last in einer asp.net-Webanwendung am besten replizieren? Gibt es eine einfache Möglichkeit, viele Anfragen auf bestimmten Seiten zu simulieren? Oder ist es das Beste, einen Profiler zu verwenden, um eine einzelne Anfrage zu verfolgen und daraus zu ermitteln, ob die Leistung in Ordnung ist?

Es wäre gut zu wissen, wie gut eine Web-App mit einer Serverspezifikation funktioniert. Ich möchte in der Lage sein, starken Datenverkehr auf meinem Testserver zu simulieren, damit ich herausfinden kann, ob der Produktionsserver gut genug ist (insbesondere mit iis/asp.net, nicht der Datenbankleistung).

203
Charlie Bear

Mein Vorschlag ist, dass Sie zuerst einige automatisierte Tests durchführen. Verwenden Sie Selen dafür.

Stellen Sie dann das Selenium-Gitter bereit, um es gleichzeitig auf mehreren Computern zu testen.

Obwohl Selen als automatisiertes Testwerkzeug ziemlich schnell läuft, wird ein Mini-Stresstest durchgeführt. Wenn Sie dieselbe Automatisierung gleichzeitig auf mehreren Computern in Ihrem Netzwerk ausführen, können Sie sehen, wie sie sich verhält.

Wenn Sie Antwortzeiten aufzeichnen möchten, haben sie eine coole API, mit der Sie einige Skripte zum Ausführen Ihrer Automatisierungen schreiben können.

Bearbeiten: Selen ist recht einfach zu verwenden und aktiviert den Seiteninhalt, wenn Sie den Inhalt testen möchten. Es kopiert auch Ihre Bewegung durch die Seite, wenn Sie möchten (dies wäre mein Vorschlag), navigieren Sie einfach viel auf der Seite und speichern Sie sie dann für die Automatisierung. Vermeiden Sie das Setzen von Asserts, damit Selen möglicherweise schneller läuft.

57
fmsf

Versuchen Sie http://loadimpact.com das Beste, was ich bisher gefunden habe, aber ich kann keine Alternative dazu finden.

76
happyhardik

JMeter wäre ein solches Werkzeug. Kann etwas schwer zu erlernen und zu konfigurieren sein, aber es lohnt sich normalerweise.

52
Joachim Sauer

Mit dem Tool ab (Apache bench) können Sie viele Anfragen an eine einzelne Seite senden und angeben, wie viele Clients und wie viele Verbindungen gleichzeitig verwendet werden sollen.

Dies kann der erste Schritt bei der Entwicklung einer Site sein. Testen Sie einfach einige Seiten mit einer bestimmten Belastung. Diese Art des Benchmarking kann ein Problem darstellen, z. B. dass das Caching überstrapaziert wird.

Später möchten Sie vielleicht ein Tool, das einen konkreten Datenverkehr simuliert und nicht für eine einzelne Seite. Ich habe noch keine Referenz für ein solches Tool.

35
Pierre

Vielleicht hilft Mühle ? Sie können gleichzeitige Anforderungen von Threads und Lightweight-Prozessen simulieren oder Tests auf mehrere Computer verteilen. Ich benutze es jedes Mal ausgiebig mit Erfolg.

10
mcveat

Wir haben einige Anwendungen ausprobiert, sowohl Versuche mit kommerziellen Produkten als auch mit frei erhältlichen. Letztendlich war es die Testversion der Team Test Load Agent Software, die wir ausprobiert haben. Es funktioniert auf jeden Fall großartig und ist ziemlich einfach zu bedienen. Auf lange Sicht hat dies unser Argument bestärkt, auf Team Foundation Server zu wechseln und alle Teile der Abteilung mit den entsprechenden Werkzeugen auszustatten.

Der offensichtliche Nachteil ist jedoch der Preis.

6
Joseph Ferris

Ich habe WebLOAD für diese Art von Projekt verwendet. Das Erstellen von Skripten ist einfach und die Überwachung von ASP.NET-Statistiken ist bereits integriert

4
Yasei No Umi

Ein weiteres Tool, das mir gefällt, ist Open STA: http://opensta.org/

Es konzentriert sich hauptsächlich auf Leistungstests und ist kostenlos.

UPDATE 2018:

Da die Antwort ziemlich alt ist, scheint das OpenSTA-Projekt nicht sehr aktiv zu sein (das Tool ist jedoch immer noch verfügbar), aber jetzt gibt es zwei andere Tools, die ich ebenfalls empfehlen würde:

Meiner Meinung nach scheint Gatling besser zu sein, da es keine Einschränkungen gibt und sie auch kommerzielle Enterprise-Lösungen bieten und mit Tools für die kontinuierliche Integration wie Jenkins kompatibel sind.

NeoLoad hat im Gegenteil eine kostenlose Version, die jedoch auf 50 Benutzer beschränkt ist (dies kann in manchen Fällen ausreichend sein). Der vollständige Vergleich der Funktionen lautet hier .

3
рüффп

Probieren Sie für Webservicetests, Soap Rest oder WCF (einschließlich WebHttpBinding) SOA Cleaner. Kann heruntergeladen werden von: http://xyrow.com Es ist eine kostenlose Version und erfordert keine Installation. Es kann auch Auslastungstests durchführen.

3
Clangon
3
Patrick Cuff