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


Ich bin auf der Suche nach einem Tool zum Testen einer Website von einer Linux-Befehlszeile.

Von der Ausgabe muss ich die HTTP-Antwort (Statuscodes) wissen, aber auch die Zeit messen, die benötigt wird, um die verschiedenen Elemente der Site herunterzuladen.

Danke im Voraus.


25
2018-03-22 14:12


Ursprung


Was haben Sie bisher gefunden, angeschaut oder erwägen (geeignet / nicht passend)? - mctylr
Keine dieser Antworten klingt sehr gut für mich. Sie müssen immer noch ewig auf ein Negativ warten - geotheory


Antworten:


Du kannst es versuchen wget mit -p Möglichkeit:

wget -p http://site.com

Es wird Ihnen sagen, wie lange es dauert, jedes Element und die Rückgabecodes für jede Anfrage herunterzuladen.


30
2018-03-22 14:29



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


Siehe Apache Benchmark:

Apache-Benchmark

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


9
2018-03-22 14:27



Apache benckmark kann hierfür nicht verwendet werden, da es sich um eine externe Quelle handelt, in der Tat handelt es sich um eine YouTube-Video-Playlist. Wir überwachen den Zugriff auf diese Ressource. TY - Embreau
Ich verstehe nicht, warum du ab nicht benutzen kannst; Wie wget in der nächsten Antwort, wird es funktionieren, solange die URL Ihrer Website von der Maschine zugänglich ist, auf der Sie das Benchmarking-Tool ausführen. - gareth_bowles
Der Apache-Benchmark ist nicht auf lokale Ressourcen beschränkt, sondern soll ein umfassendes Tool zur Leistungsmessung sein (einschließlich Netzwerklatenz, I / O usw.). - andre
Gut zu wissen, ich werde diese Option bewerten, danke. - Embreau


Vielleicht möchten Sie sich die folgenden Optionen ansehen curl:

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

Und die folgende Option von wget:

  • --timestamping - Zeitstempel einschalten

6
2018-03-22 14:49



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


Selen und Curl sind gute Optionen, je nachdem, was Ihr Ziel ist. Auch ein Dienstprogramm, das mir sehr gut gefallen hat, ist twill. Weitere Informationen finden Sie unter http://twill.idyll.org/.

Es ist nett, da es eine eigene kleine spezialisierte Sprache 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 problemlos importieren und Ihre Tests selbst automatisieren, wenn Sie etwas anderes machen möchten.


3
2018-03-22 15:50





Verwenden Sie curl, um die Kopfzeile für die Seite abzurufen und den Prozess zu zeitgesteuert auszuführen:

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

wrap das in einer while-Schleife und du bist gut zu gehen. Genauso können Sie nach allen Elementen suchen, wenn Sie die URL kennen.


2
2018-03-22 14:24





Probieren Sie ein Kommandozeilen-Tool namens "Belagerung" wie angewiesen Hier


1
2017-09-03 12:13



Das ist nicht was er verlangt. und du bist auch 3 Jahre zu spät =) - mveroone


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


0
2018-03-22 14:53





Ich denke für den Laufleistungstest kannst du es versuchen JMeter. Sie können Ihren Test mit dem eingebauten Proxy aufzeichnen. Es wird auch im Textmodus lokal oder verteilt 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
2018-03-21 14:48





Zum Überprüfen von Überschriften mag ich httpie (Dokumente).

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
2018-01-06 10:03





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ängig ist (z. B. muss der Benutzer sich anmelden), ist ab / curl / wget (in anderen Antworten beschrieben) nicht ausreichend. Eine Lösung ist zu verwenden http :: Rekorder / www :: mechanisieren.

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

Benchmark die Zeit, die es dauert, um die verschiedenen Elemente der Website herunterzuladen.

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

Eine bessere Lösung ist, etwas wie zu verwenden Boomerang - aber das läuft in einem Javascript-fähigen Browser. Dies ist zwar ein besserer Indikator für die wahrgenommene Leistung als das Verfolgen einzelner HTTP-Anforderungen, es beruht jedoch auf Browserereignissen, um einen Wert für die Leistung abzuleiten. Bei der wahrgenommenen Leistung geht es jedoch um die Zeit, die das Darstellungsfeld benötigt. Sehen Sie sich die Filmstreifenwerkzeuge in. an WebPageTest).

Es gibt auch das Argument über die Messung der Leistung, die tatsächlich an Benutzer der Website (RUM) gegenüber synthetischen Tests geliefert wird.


0
2018-01-06 11:50