it-swarm.com.de

Testen einer Website über die Linux-Befehlszeile

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.

Vielen Dank im Voraus.

30
Embreau

Sie können wget mit der Option -p Ausprobieren:

wget -p http://site.com

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

38
Dan Andreatta

Siehe Apache Benchmark:

Apache Benchmark

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

9
andre

Möglicherweise möchten Sie die folgenden Optionen von curl betrachten:

  • --write-out - Zeigt eine von mehreren zeitbezogenen Variablen an
  • --trace-time - Stellt jeder Spur oder ausführlichen Zeile einen Zeitstempel voran
  • --verbose
  • --include - (HTTP) Fügen Sie den HTTP-Header in die Ausgabe ein.
  • --trace-ascii <file> - Aktiviert einen vollständigen Trace-Dump aller eingehenden und ausgehenden Daten, einschließlich beschreibender Informationen

Und die folgende Option von wget:

  • --timestamping - Zeitstempel einschalten

Selen und Curl sind gute Optionen, je nachdem, was Ihr Ziel ist. Ein Dienstprogramm, das mir schon sehr gut gefallen hat, 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, Überprüfen von Links und Überprüfen von Antwortcodes hat. Da es sich nur um Python Code) handelt, können Sie die Bibliotheken einfach importieren und Ihre Tests selbst automatisieren, wenn Sie etwas anderes tun möchten.

3
McJeff

Verwenden Sie curl, um die Kopfzeile für die Seite abzurufen und den Vorgang zeitlich festzulegen:

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

wickeln Sie das in eine Weile Schleife und Sie können loslegen. Auf die gleiche Weise können Sie nach allen Elementen suchen, wenn Sie die URL kennen.

2
Sideshowcoder

Welches Tool Sie auswählen, hängt davon ab, was Sie messen möchten und von der Komplexität der Site.

Wenn das Verhalten der Website von Cookies abhängt (z. B. muss sich der Benutzer anmelden), reicht ab/curl/wget (in anderen Antworten beschrieben) 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.

benchmarking der Zeit, die zum Herunterladen der verschiedenen Elemente der Website benötigt wird.

Dies ist ein sehr schlechter Leistungsindikator (obwohl er zur Überwachung des Zustands eines Produktionssystems nützlich ist). Mit Ausnahme großer/langsamer Ressourcen wie umfangreicher Berichte, ISO-Bilder und Multimediadateien hat die Wahrnehmung der Leistung sehr wenig mit der Zeit zu tun, die für die Bearbeitung 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, DNS-Suchzeiten).

Eine bessere Lösung ist die Verwendung von Boomerang - aber das läuft in einem Javascript-fähigen Browser. Dies liefert zwar einen besseren Indikator für die wahrgenommene Leistung als die Verfolgung einzelner HTTP-Anforderungen, stützt sich jedoch auf Browserereignisse, um einen Wert für die Leistung abzuleiten. Bei der empfangenen Leistung geht es jedoch nur um die Zeit, die das Ansichtsfenster zum Rendern benötigt (auch hier gibt es Tools dafür). Schauen Sie sich die Filmstreifen-Tools in WebPageTest ) an.

Es gibt auch das Argument, die tatsächlich an Benutzer der Site (RUM) gelieferte Leistung im Vergleich zu synthetischen Tests zu messen.

1
symcbean

probieren Sie ein Befehlszeilenprogramm namens 'Belagerung' aus, wie angewiesen hier

1
lefterav

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

Installation

pip install httpie --user

Verwendungszweck

$ 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
0
Martin Thoma

Ich denke, für den Leistungstest können Sie JMeter versuchen. Sie können Ihren Test mit dem integrierten Proxy aufzeichnen. Es wird auch im lokalen oder verteilten Textmodus ausgeführt. 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
ghm1014

Wenn Sie etwas Größeres als Curl und/oder Wget benötigen, gibt es auch Selen

0
Unreason