Tester un site Web à partir de la ligne de commande Linux [fermé]

29

Je recherche un outil pour tester un site Web à partir d'une ligne de commande Linux.

De la sortie, j'ai besoin de connaître la réponse http (codes d'état) mais aussi de comparer le temps qu'il faut pour télécharger les différents éléments du site.

Merci d'avance.

Embreau
la source
Qu'avez-vous trouvé, examiné ou envisagé (approprié / non approprié) jusqu'à présent?
mctylr
Aucune de ces réponses ne me semble très bonne. Vous devez encore attendre des âges pour un négatif
geotheory

Réponses:

35

Vous pouvez essayer wgetavec -poption:

wget -p http://site.com

Il vous dira combien de temps il faut pour télécharger chaque élément et les codes retour pour chaque demande.

Dan Andreatta
la source
2
wget -p URL -O /dev/null
Fedir RYKHTIK
9

Veuillez consulter Apache Benchmark:

Apache Benchmark

Cela devrait vous donner un aperçu des performances de votre page.

andre
la source
Apache benckmark ne peut pas être utilisé pour cela car il s'agit d'une source externe, en fait c'est une liste de lecture vidéo YouTube. Nous surveillons l'accès à cette ressource. TY
Embreau
Je ne vois pas pourquoi vous ne pouvez pas utiliser ab; comme wget dans la réponse suivante, cela fonctionnera tant que l'URL de votre site sera accessible depuis la machine sur laquelle vous exécutez l'outil d'analyse comparative.
gareth_bowles
Le benchmark Apache n'est pas limité aux ressources locales, il est censé être un outil de mesure des performances complet (y compris la latence du réseau, les E / S, etc.).
andre
Bon à savoir, je vais évaluer cette option, merci.
Embreau
6

Vous voudrez peut-être examiner les options suivantes curl:

  • --write-out - affiche l'une des différentes variables liées au temps
  • --trace-time - Ajoute un horodatage à chaque trace ou ligne verbeuse
  • --verbose
  • --include - (HTTP) Inclut l'en-tête HTTP dans la sortie.
  • --trace-ascii <file> - Permet un vidage de trace complet de toutes les données entrantes et sortantes, y compris les informations descriptives

Et l'option suivante de wget:

  • --timestamping - Activer l'horodatage
En pause jusqu'à nouvel ordre.
la source
curl --trace-ascii <file> --trace-time -o /dev/null <url>était exactement ce dont j'avais besoin. Merci!
dsummersl
3

Le sélénium et le curl sont de bonnes options selon votre objectif. En outre, un utilitaire que j'aime beaucoup est twill. Plus d'informations sont disponibles sur http://twill.idyll.org/ .

C'est bien car il a son propre petit langage spécialisé pour remplir les formulaires, valider les liens et vérifier les codes de réponse. Comme il ne s'agit que de code Python, vous pouvez facilement importer les bibliothèques et automatiser vos tests vous-même si vous souhaitez faire quelque chose de différent.

McJeff
la source
2

Utilisez curl pour obtenir l'en-tête de la page et chronométrez le processus:

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

envelopper cela dans une boucle de temps et vous êtes prêt à partir. De la même manière, vous pouvez vérifier tous les éléments si vous connaissez l'URL.

Sideshowcoder
la source
1

essayez un outil en ligne de commande appelé «siège» comme indiqué ici

lefterav
la source
6
Ce n'est pas ce qu'il demande. et vous avez aussi 3 ans de retard =)
mveroone
1

L'outil que vous choisissez dépend de ce que vous souhaitez mesurer et de la complexité du site.

Si le comportement du site dépend des cookies (par exemple, l'utilisateur doit se connecter), ab / curl / wget (décrit dans d'autres réponses) ne suffira pas. Une solution consiste à utiliser http :: recorder / www :: mechanize .

Toutes les données que vous demandez se trouvent dans vos journaux de serveur Web - et un simple script awk les renverra sous une forme plus lisible.

comparer le temps nécessaire au téléchargement des différents éléments du site.

Il s'agit d'un très mauvais indicateur de performance (bien qu'il soit utile pour surveiller la santé d'un système de production). À l'exception des ressources volumineuses / lentes telles que les rapports volumineux, les images ISO, les fichiers multimédias, la perception des performances a très peu à voir avec le temps pris pour traiter une seule demande - et il est vraiment difficile de mesurer cela avec précision (simplement en ajoutant% D dans votre journal apache semble résoudre le problème mais ignore les poignées de main TCP, la négociation SSL, les effets de mise en cache, les temps de recherche DNS).

Une meilleure solution consiste à utiliser quelque chose comme Boomerang - mais qui s'exécute dans un navigateur compatible Javascript. Bien que cela donne un meilleur indicateur des performances perçues que le suivi des demandes HTTP individuelles, il s'appuie sur les événements du navigateur pour dériver une valeur pour les performances - mais les performances reçues concernent tout le temps nécessaire au rendu de la fenêtre d'affichage (encore une fois, il existe des outils pour cela - jetez un œil aux outils filmstrip dans WebPageTest ).

Il y a également l'argument concernant la mesure des performances réellement fournies aux utilisateurs du site (RUM) par rapport aux tests synthétiques.

symcbean
la source
0

Si vous avez besoin de quelque chose de plus grand que de boucler et / ou de wget, il y a aussi du sélénium

Déraisonnable
la source
0

Je pense que pour exécuter le test de performance, vous pouvez essayer JMeter . Vous pouvez enregistrer votre test à l'aide du proxy intégré. Il s'exécute également en mode texte, local ou distribué. Vous pouvez enregistrer vos résultats au format csv ou xml. Si vous utilisez le format xml, vous pouvez également stocker le contenu de la page.

ghm1014
la source
0

Pour vérifier les en-têtes, j'aime httpie( docs ).

Installation

pip install httpie --user

Usage

$ 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
Martin Thoma
la source