it-swarm.com.de

Tools zum Testen von HTTP-Servern?

Ich musste einige Male Test-HTTP-Server/Webanwendungen laden und war jedes Mal von der Qualität der Tools, die ich finden konnte, überwältigt.

Welche Tools verwenden Sie beim Lasttest eines HTTP-Servers? Und was werde ich höchstwahrscheinlich falsch machen, wenn ich es das nächste Mal tun muss?

39
David Wolever

JMeter ist kostenlos.

Mercury Interactive Load Runner ist super schön und super teuer.

24
Chad Grant

Ich fühle mich ungewöhnlich qualifiziert, um diese Frage zu beantworten, da mein derzeitiges Unternehmen 25.000 gleichzeitige Verbindungen zu unseren Webservern simulieren muss (wir liefern Online-Anzeigen).

Für Lasttests mit extrem hohem Volumen ist Httperf der richtige Weg. Es ist kostenlos und kann nach unserer Erfahrung mehr gleichzeitige Verbindungen simulieren als JMeter oder STA auf derselben Hardware.

Bearbeiten:

Für den Fall, dass Sie neugierig sind, simulieren wir 3500 Anfragen pro Sekunde mit einem kostengünstigen Optiplex 330 mit geringem Stromverbrauch und extrem kleinem Formfaktor. Diese kleinen Boxen kosten nur 280 US-Dollar, und wir haben eine Reihe von Boxen für den Betrieb angeschlossen Httperf auf Anfrage. Im Vergleich dazu konnte JMeter auf dieser Hardware nur etwa 800-900 Anforderungen/Sek. Pushen.

21
Portman

Wenn Sie nur eine einzelne URL gleichzeitig auf einem Webserver laden möchten, laden Sie Apache AB herunter. Es kommt mit Apache HTTP-Server.

Einfacher Befehl

ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers

würde 10000 Anfragen mit einer Parallelität von 10 Benutzern ausführen.

Wenn Sie Browsersitzungen aufzeichnen möchten, stimmen Sie ab und akzeptieren Sie die Antwort von jmeter. Jmeter ist erstaunlich und kann auf viele Testmaschinen skaliert werden, die eine enorme Last werfen können.

20

Es gibt Tsung , ein Erlang-basiertes Tool.

Es gibt auch eine sehr lange Liste von Tools unter http://www.softwareqatest.com/qatweb1.html#LOAD

8
Jauder Ho

Für einen schnellen Test können Sie Curls-Sequenzen und Sätze von URLs verwenden. Angenommen, wir führen einen Belastungs-Stresstest gegen Google durch, den wir ausführen können ...

curl -s "http://google.com?[1-1000]"

Dadurch werden 1000 Anrufe bei Google getätigt, d. H.

http://google.com?1  
http://google.com?2  
http://google.com?3 
... 
http://google.com?1000

Dies wird ausführlicher unter erläutert. So testen Sie einen Webserver mit Curl schnell auf Stresstest.

6
Ian Purton

Sie müssen verschiedene Tests einrichten:

  • Normaler Test, simulieren Sie Benutzer, wie sie sich verhalten werden. Sie implementieren die Denkzeit (keine http-Wut 1s zwischen den Seiten). Eine Möglichkeit besteht darin, eine Websitzung aufzuzeichnen, damit Sie realistische Zeit haben, jede Seite zu vervollständigen/zu lesen. Die Last wird Schritt für Schritt erfolgen, bis Sie die durchschnittliche aktuelle Last in der Produktion erreichen
  • Bruchtest: Wie zuvor, jedoch zusätzliche Last hinzufügen, bis der erste http 500-Fehler auftritt. Das Ziel ist zu wissen, wie viel Last Sie verwalten können, bis sie bricht
  • Langzeittest. Sie lassen das erste Szenario 12 Stunden lang laufen, um sicherzustellen, dass Sie keinen Speicherverlust oder Leistungseinbußen im Laufe der Zeit haben.

Nach/vor jedem Test müssen Sie die Plattform wie zuvor wiederherstellen: Datenbank wiederherstellen, neu starten, um Speicher und Cache zu bereinigen.

Sie werden auch ein Warm-up implementieren: Starten Sie Szenarien einmal vor dem eigentlichen Test, damit Webseiten kompiliert und eine Verbindung zur Datenbank hergestellt werden. Andernfalls ist der erste Anruf in Ihren Statistiken immer schlecht.

Sie können Komplexität hinzufügen, wie:

  • verwenden Sie verschiedene Szenarien (Besucher/Gast, Mitglieder), die sich unterschiedlich verhalten.
  • Simulieren Sie unterschiedliche Bandbreitenzugriffe
  • Suchen Sie das gesuchte Wort nach dem Zufallsprinzip und denken Sie nach.

Eine letzte wichtige Sache: Sie MÜSSEN alle abgeschlossenen Szenarien speichern, um sie wieder auf die gleiche Weise erstellen zu können, damit Sie die Leistung mit früheren Tests vergleichen können.

5
Mathieu Chateau

Wenn Sie nur testen möchten, wie mehrere Verbindungen verarbeitet werden, können Sie Siege verwenden. Ich bin mir immer noch nicht sicher, ob es eine großartige Maßnahme ist, aber es wird Ihnen zumindest sagen, wie Sie mit mehreren Verbindungen umgehen

2
trent

Ich habe openSTA verwendet.

Dies verwendet eine relativ einfache Skriptsprache.

Sie können problemlos Webdienste/Server testen und Ihre eigenen Skripte schreiben.

Sie können Skripte in einem Test beliebig zusammenstellen und die Anzahl der Iterationen, die Anzahl der Benutzer in jeder Iteration, die Hochlaufzeit für die Einführung jedes neuen Benutzers und die Verzögerung zwischen den einzelnen Iterationen konfigurieren. Tests können auch in Zukunft geplant werden.

Es ist Open Source und kostenlos.

Es werden eine Reihe von Berichten erstellt, die in einer Tabelle gespeichert werden können. Wir verwenden dann eine Pivot-Tabelle, um die Ergebnisse einfach zu analysieren und grafisch darzustellen.

2
nzpcmad

Ich habe zuvor LoadRunner verwendet, aber es ist ziemlich teuer. Ich habe auch die Team Tester Edition-Tools von Microsoft verwendet, die ein System enthalten, das Auslastungstests durchführt. Ich war ziemlich zufrieden mit der Funktionsweise des Tools, und Sie konnten die Tests mit .net erweitern. Dies war eine einfachere Syntax als die von LoadRunner.

Die von uns verwendete Version von Load Runner konnte auch unsere AJAX Site) nicht verarbeiten (Dies war im Jahr 2000, daher bin ich sicher, dass das Tool inzwischen verbessert wurde).

1
JoshBerke

Wir verwenden WAPT und es funktioniert sehr gut. Einfach einzurichten und nur ein paar hundert Dollar. LoadRUnner ist lächerlich überteuert und für alle außer dem Forutune 500 völlig unerreichbar.

1
rmalayter

Dies hängt davon ab, wie komplex Ihr Szenario ist.

Um die tatsächliche Benutzerlast auf Ihrem Server korrekt zu simulieren, sollten Sie versuchen, zu simulieren, was die Benutzer tatsächlich tun. Wenn Ihre Benutzer nur mit einer URL auf den Server zugreifen, reicht jedes der kostenlosen/einfachen Tools aus.

Für Websites, die etwas komplexer sind, möchten Sie ein Tool verwenden, das Ihnen bei der Korrelation dynamischer Werte, der Parametrisierung usw. hilft. Sie können Load-Runner und dergleichen verwenden. Ich bevorzuge die Verwendung von WebLOAD =.

0
Yasei No Umi