Frage Tools zum Testen von HTTP-Servern? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Ich musste Test-HTTP-Server / Web-Anwendungen einige Male laden, und jedes Mal wurde ich von der Qualität der Tools, die ich finden konnte, nicht begeistert gewesen.

Wenn Sie also einen HTTP-Server laden, welche Tools verwenden Sie? Und was mache ich höchstwahrscheinlich falsch, wenn ich es das nächste Mal machen muss?


39
2018-05-01 03:40


Ursprung




Antworten:


JMeter ist gratis.

Mercury Interactive Load Runner ist super nett und super teuer.


24
2018-05-01 03:48



Ich mag JMeter. Sie können damit umfangreiche, vollständige Tests für den Standort laden, oder Sie können 5 Minuten damit verbringen, einen Test für eine bestimmte Funktion einzurichten. Gute Schnittstelle mit vielen Optionen. - Milner


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

Für extrem hohe Belastungstests, Httperf ist der Weg zu gehen. Es ist kostenlos und nach unserer Erfahrung kann es simultane Verbindungen wie JMeter oder STA auf der gleichen Hardware simulieren.

Bearbeiten:

Nur für den Fall, dass Sie neugierig sind, simulieren wir 3500 Anfragen pro Sekunde auf einem Optiplex 330 mit geringem Stromverbrauch, einem kostengünstigen Ultra-Small-Form-Factor-Prozessor. Diese kleinen Boxen kosten nur $ 280, und wir haben eine Menge davon zum Laufen Httperf auf Anfrage. Im Vergleich dazu konnte JMeter auf dieser Hardware nur etwa 800-900 Req / Sek. Drücken.


21
2018-05-01 03:57





Wenn Sie nur eine einzelne URL gleichzeitig auf einen 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 Anforderungen mit einer Gleichzeitigkeit von 10 Benutzern ausführen.

Wenn Sie Surfsitzungen aufzeichnen möchten, gehen Sie auf "upvote" und akzeptieren Sie die Antwort von jmeter. Jmeter ist erstaunlich und kann auf viele Testmaschinen skaliert werden, die große Lasten werfen können.


20
2018-05-01 08:26



Beachten Sie, dass ab -n die Anzahl der Antworten ist, die empfangen werden, bevor das Senden von Anforderungen beendet wird. Wenn Sie die Parallelität erhöhen, senden Threads weiterhin Anforderungen, bevor die Antworten gezählt werden. Das obige würde tatsächlich ungefähr 10005 Anfragen senden. JMeter leidet nicht unter diesem Problem. - Peter Sankauskas
ab Läuft single-threaded und verwendet select um Verbindungen zu durchlaufen. Dies bedeutet, dass es hin und wieder aufhört, Last zu senden, während es geschlossene Verbindungen sammelt. Sie werden dies bemerken, wenn Sie über 16000 Anfragen hinausgehen, die Sie benötigen, wenn Sie die Nebenläufigkeit auf mehr als 500 erhöhen. - bluesmoon


Es gibt Tsung, ein auf Erlang basierendes Tool.

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


8
2018-05-01 06:10





Für einen schnellen Test können Sie Lockensequenzen und URL-Sets verwenden. Sagen wir zum Beispiel, wir führen einen Belastungstest gegen Google, den wir ausführen können ...

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

Dies wird 1000 Aufrufe an Google machen, d. H.

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

Dies wird ausführlicher unter Wie schnell testen Sie einen Webserver mit Locken.


6
2018-02-09 17:01





Sie müssen verschiedene Tests einrichten:

  • Normaler Test, simuliere Benutzer wie sie sich verhalten werden. Sie implementieren Think-Time (keine http-Wut 1s zwischen den Seiten). Eine Möglichkeit besteht darin, eine Web-Sitzung aufzuzeichnen, sodass Sie realistische Zeit haben, um jede Seite fertigzustellen / zu lesen. Die Last wird Schritt für Schritt erreicht, bis Sie die durchschnittliche Strombelastung in der Produktion erreicht haben
  • Bruchprüfung: Wie zuvor, aber fügen Sie Last hinzu, bis Sie den ersten HTTP 500-Fehler erhalten. Das Ziel ist es zu wissen, wie viel Ladung Sie verwalten können, bis es kaputt geht
  • Lange laufender Test. Sie halten das erste Szenario für 12 Stunden, um sicher zu gehen, dass Sie keinen Speicherverlust oder Leistungseinbußen im Laufe der Zeit haben.

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

Sie werden auch ein Warm-up implementieren: Starten Sie Szenarien einmal vor dem eigentlichen Test, damit Webseiten kompiliert werden, Verbindung zur Datenbank hergestellt. Sonst wird der erste Aufruf in deinen Statistiken immer schlecht sein.

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

  • Benutze verschiedene Szenarien (Besucher / Gast, Mitglieder), die sich unterschiedlich verhalten.
  • Simuliert unterschiedliche Bandbreitenzugriffe
  • Randomize gesuchtes Wort und Zeit denken.

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


5
2018-06-10 16:08



Ausgezeichnete Zusammenfassung der Strategien. - mjhm


Wenn Sie nur versuchen, zu testen, wie es mehrere Verbindungen behandelt, können Sie etwas wie verwenden Belagerung. 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
2018-05-01 03:46





Ich habe gebraucht ÖffnenSTA.

Dies verwendet eine relativ einfache Skriptsprache.

Sie können Web Services / Server einfach testen und eigene Skripte schreiben.

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

Es ist Open Source und kostenlos.

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


2
2018-05-01 03:51