Testen einer Website über die Linux-Befehlszeile [geschlossen]


29

Ich suche nach einem Tool zum Testen einer Website über eine Linux-Befehlszeile.

Aus der Ausgabe muss ich die http-Antwort (Statuscodes) kennen, aber auch die Zeit messen, die zum Herunterladen der verschiedenen Elemente der Site benötigt wird.

Danke im Voraus.


Was haben Sie bisher gefunden, angeschaut oder in Erwägung gezogen (geeignet / nicht geeignet)?
Mctylr

Keine dieser Antworten klingt für mich sehr gut. Sie müssen noch
ewig

Antworten:


35

Sie können wgetmit der -pOption versuchen :

wget -p http://site.com

Hier erfahren Sie, wie lange es dauert, jedes Element und die Rückgabecodes für jede Anforderung herunterzuladen.


2
wget -p URL -O /dev/null
Fedir RYKHTIK

9

Bitte beachten Sie den Apache Benchmark:

Apache Benchmark

Dies sollte Ihnen einen Überblick über die Leistung Ihrer Seite geben.


Apache benckmark kann dafür nicht verwendet werden, da es sich um eine externe Quelle handelt, in Wirklichkeit handelt es sich um eine YouTube-Video-Playlist. Wir überwachen den Zugriff auf diese Ressource. TY
Embreau

Ich verstehe nicht, warum Sie ab nicht verwenden können. Wie wget in der nächsten Antwort funktioniert es, solange die URL Ihrer Site von dem Computer aus zugänglich ist, auf dem Sie das Benchmarking-Tool ausführen.
gareth_bowles

Der Apache-Benchmark ist nicht auf lokale Ressourcen beschränkt, sondern soll ein vollständiges Tool zur Leistungsmessung sein (einschließlich Netzwerklatenz, E / A usw.).
Andre

Gut zu wissen, ich werde diese Option bewerten, danke.
Embreau

6

Möglicherweise möchten Sie die folgenden Optionen anzeigen curl:

  • --write-out - Zeigt eine von mehreren zeitbezogenen Variablen an
  • --trace-time - Fügt jeder Ablaufverfolgung oder Wortzeile einen Zeitstempel hinzu
  • --verbose
  • --include - (HTTP) Bezieht den HTTP-Header in die Ausgabe ein.
  • --trace-ascii <file> - Ermöglicht einen vollständigen Trace-Dump aller eingehenden und ausgehenden Daten, einschließlich beschreibender Informationen

Und die folgende Option von wget:

  • --timestamping - Aktivieren Sie die Zeitstempelung

curl --trace-ascii <file> --trace-time -o /dev/null <url>war genau das, was ich brauchte. Vielen Dank!
Dsummersl

3

Selen und Curl sind gute Optionen, abhängig von Ihrem Ziel. Auch ein Dienstprogramm, das mir mittlerweile ziemlich gut gefällt, ist twill. Weitere Informationen finden Sie unter http://twill.idyll.org/ .

Es ist schön, da es eine eigene kleine Fachsprache zum Ausfüllen von Formularen, zum Überprüfen von Links und zum Überprüfen von Antwortcodes gibt. Da es sich nur um Python-Code handelt, können Sie die Bibliotheken problemlos importieren und Ihre Tests selbst automatisieren, wenn Sie etwas anderes tun möchten.


2

Verwenden Sie curl, um die Kopfzeile für die Seite abzurufen, und legen Sie den Zeitpunkt für den Vorgang fest:

time curl -I http://yourpage.com | grep HTTP

wickeln Sie das in einer Weile Schleife und Sie sind gut zu gehen. Auf die gleiche Weise können Sie nach allen Elementen suchen, wenn Sie die URL kennen.



1

Welches Tool Sie auswählen, hängt davon ab, was Sie messen möchten und wie komplex die Site ist.

Wenn das Verhalten der Website von Cookies abhängt (z. B. muss sich der Benutzer anmelden), reicht ab / curl / wget (beschrieben in anderen Antworten) nicht aus. Eine Lösung ist die Verwendung von http :: recorder / www :: mechanize .

Alle Daten, nach denen Sie fragen, befinden sich in Ihren Webserver-Protokollen - und ein einfaches awk-Skript gibt sie in einer besser lesbaren Form zurück.

Schätzen Sie die Zeit ein, die zum Herunterladen der verschiedenen Elemente der Site benötigt wird.

Dies ist ein sehr schlechter Leistungsindikator (obwohl er zur Überwachung des Zustands eines Produktionssystems nützlich ist). Mit Ausnahme von großen / langsamen Ressourcen wie umfangreichen Berichten, ISO-Bildern und Multimediadateien hat die Wahrnehmung der Leistung sehr wenig mit der Zeit zu tun, die für die Verarbeitung einer einzelnen Anforderung benötigt wird - und es ist wirklich schwierig, dies genau zu messen (einfach% hinzufügen). D in Ihrem Apache-Protokoll scheint das Problem zu lösen, ignoriert jedoch TCP-Handshakes, SSL-Aushandlung, Caching-Effekte und DNS-Lookup-Zeiten.

Eine bessere Lösung ist es, so etwas wie Boomerang zu verwenden - aber das läuft in einem Javascript-fähigen Browser. Dies liefert zwar einen besseren Indikator für die wahrgenommene Leistung als das Verfolgen einzelner HTTP-Anforderungen, stützt sich jedoch auf Browserereignisse, um einen Wert für die Leistung abzuleiten. Schauen Sie sich die Filmstreifen-Tools in WebPageTest an .

Es gibt auch das Argument, die Leistung zu messen, die den Benutzern der Site (RUM) tatsächlich zur Verfügung gestellt wird, und synthetische Tests.


0

Wenn Sie etwas größeres brauchen, dann locken Sie sich und / oder wget, gibt es auch Selen


0

Ich denke, um Leistungstests durchzuführen, können Sie JMeter ausprobieren . Sie können Ihren Test mit dem eingebauten Proxy aufzeichnen. Es läuft auch im Textmodus, lokal oder verteilt. Sie können Ihre Ergebnisse im CSV- oder XML-Format speichern. Wenn Sie das XML-Format verwenden, können Sie auch den Inhalt der Seite speichern.


0

Zum Überprüfen von Headern mag ich httpie( docs ).

Installation

pip install httpie --user

Verwendung

$ http -h http://serverfault.com/q/124952/113899
HTTP/1.1 302 Found
Accept-Ranges: bytes
Age: 0
Cache-Control: private
Connection: keep-alive
Content-Length: 198
Content-Type: text/html; charset=utf-8
Date: Fri, 06 Jan 2017 10:01:06 GMT
Location: http://serverfault.com/questions/124952/testing-a-website-from-linux-command-line
Set-Cookie: prov=392298d9-103e-7dfc-5b55-8738be46cf3b; domain=.serverfault.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-Request-Guid: 07a25de4-6e16-4aa8-acfc-12b1bbbc6180
X-Served-By: cache-hhn1543-HHN
X-Timer: S1483696865.976259,VS0,VE187
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.