Test di un sito Web dalla riga di comando di Linux [chiuso]


29

Sto cercando uno strumento per testare un sito Web da una riga di comando di Linux.

Dall'output, ho bisogno di conoscere la risposta http (codici di stato) ma anche di valutare il tempo necessario per scaricare i diversi elementi del sito.

Grazie in anticipo.


Cosa hai trovato, visto o considerato (adatto / non adatto) finora?
mctylr,

Nessuna di queste risposte mi suona molto bene. Devi ancora aspettare anni per un negativo
geotheory

Risposte:


35

Puoi provare wgetcon l' -popzione:

wget -p http://site.com

Ti dirà quanto tempo ci vuole per scaricare ogni elemento e i codici di ritorno per ogni richiesta.


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

9

Vedi il benchmark di Apache:

Punto di riferimento di Apache

Questo dovrebbe darti una panoramica del rendimento della tua pagina.


Apache benckmark non può essere utilizzato per questo poiché è una fonte esterna, in realtà è una playlist di video di YouTube. Stiamo monitorando l'accesso a questa risorsa. TY
Embreau,

Non vedo perché non puoi usare ab; come wget nella prossima risposta, funzionerà finché l'URL del tuo sito è accessibile dalla macchina in cui stai eseguendo lo strumento di benchmarking.
gareth_bowles,

Il benchmark Apache non è limitato alle risorse locali, è pensato per essere uno strumento di misurazione delle prestazioni completo (tra cui latenza di rete, I / O, ecc.).
andre,

Buono a sapersi, valuterò questa opzione, grazie.
Embreau,

6

Potresti voler esaminare le seguenti opzioni di curl:

  • --write-out - visualizza una delle diverse variabili legate al tempo
  • --trace-time - Prepara un timestamp per ogni traccia o riga dettagliata
  • --verbose
  • --include - (HTTP) Includi l'intestazione HTTP nell'output.
  • --trace-ascii <file> - Abilita un dump di traccia completo di tutti i dati in entrata e in uscita, comprese le informazioni descrittive

E la seguente opzione di wget:

  • --timestamping - Attiva il timestamp

curl --trace-ascii <file> --trace-time -o /dev/null <url>era esattamente quello di cui avevo bisogno. Grazie!
dsummersl,

3

Il selenio e il ricciolo sono buone opzioni a seconda di quale sia il tuo obiettivo. Inoltre, un'utilità che mi è piaciuta parecchio è twill. Maggiori informazioni sono disponibili su http://twill.idyll.org/ .

È bello in quanto ha un linguaggio poco specializzato per la compilazione di moduli, la convalida di collegamenti e il controllo dei codici di risposta. Dal momento che è solo il codice Python, puoi facilmente importare le librerie e automatizzare i test da solo se desideri fare qualcosa di diverso.


2

Usa l'arricciatura per ottenere l'intestazione per la pagina e cronometra il processo:

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

avvolgilo in un attimo e sei a posto. Allo stesso modo puoi verificare tutti gli elementi se conosci l'URL.


1

prova uno strumento da riga di comando chiamato 'assedio' come indicato qui


6
Non è quello che sta chiedendo. e sei anche in ritardo di 3 anni =)
mveroone

1

Quale strumento scegli dipende da cosa vuoi misurare e dalla complessità del sito.

Se il comportamento del sito dipende dai cookie (ad es. L'utente deve effettuare l'accesso) quindi ab / curl / wget (descritto in altre risposte) non sarà sufficiente. Una soluzione è utilizzare http :: recorder / www :: mechanize .

Tutti i dati che stai chiedendo sono nei log del tuo server web - e un semplice script awk li restituirà in una forma più leggibile.

confrontare il tempo necessario per scaricare i diversi elementi del sito.

Questo è un indicatore molto scarso delle prestazioni (sebbene sia utile per monitorare l'integrità di un sistema di produzione). Con l'eccezione di risorse grandi / lente come report ingombranti, immagini ISO, file multimediali, la percezione delle prestazioni ha poco a che fare con il tempo impiegato per elaborare una singola richiesta - ed è davvero difficile misurarla accuratamente (semplicemente aggiungendo% D nel log di Apache sembra risolvere il problema ma ignora gli handshake TCP, la negoziazione SSL, gli effetti di memorizzazione nella cache, i tempi di ricerca DNS).

Una soluzione migliore consiste nell'utilizzare qualcosa come Boomerang , ma che viene eseguito in un browser compatibile con Javascript. Sebbene ciò fornisca un indicatore migliore delle prestazioni percepite rispetto al tracciamento delle singole richieste HTTP, si basa sugli eventi del browser per ricavare un valore per le prestazioni, ma le prestazioni ricevute riguardano tutto il tempo impiegato per il rendering del viewport (di nuovo ci sono strumenti per questo - dai un'occhiata agli strumenti di filmstrip in WebPageTest ).

C'è anche l'argomento sulla misurazione delle prestazioni effettivamente fornite agli utenti del sito (RUM) rispetto ai test sintetici.



0

Penso che per l'esecuzione del test delle prestazioni puoi provare JMeter . È possibile registrare il test utilizzando il proxy incorporato. Funziona anche in modalità testo, locale o distribuito. È possibile salvare i risultati in formato CSV o XML. Se si utilizza il formato XML è anche possibile memorizzare il contenuto della pagina.


0

Per controllare le intestazioni, mi piacciono httpie( documenti ).

Installazione

pip install httpie --user

uso

$ 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.