web-dev-qa-db-fra.com

Vérificateur de liens automatisé pour les tests du système

Je dois souvent travailler avec des sites Web hérités fragiles qui se brisent de manière inattendue lorsque la logique ou la configuration sont mises à jour.

Je n'ai pas le temps ou la connaissance du système nécessaire pour créer un script Selenium . En outre, je ne veux pas vérifier un cas d'utilisation spécifique - je veux vérifier chaque lien et page du site.

Je voudrais créer un test système automatisé qui parcourra un site et vérifiera les liens cassés et les plantages. Idéalement, il y aurait un outil que je pourrais utiliser pour y parvenir. Il doit avoir autant de fonctionnalités que possible, par ordre décroissant de priorité:

  • Déclenché via un script
  • Ne nécessite pas d'interaction humaine
  • Suit tous les liens, y compris les balises d'ancrage et les liens vers les fichiers CSS et js
  • Produit un journal de tous les 404, 500, etc. trouvés.
  • Peut être déployé localement pour vérifier les sites sur les intranets
  • Prend en charge l'authentification basée sur les cookies/formulaires
  • Libre/Open source

Il existe de nombreuses solutions partielles, comme FitNesse , LinkChecker de Firefox et le vérificateur de liens W3C , mais aucune ne fait tout ce dont j'ai besoin.

Je voudrais utiliser ce test avec des projets utilisant une gamme de technologies et de plates-formes, donc plus la solution est portable, mieux c'est.

Je me rends compte que ce n'est pas un substitut à des tests de système appropriés, mais il serait très utile d'avoir un moyen pratique et automatisable de vérifier qu'aucune partie du site n'était évidemment en panne.

44
ctford

J'utilise Link Sleuth de Xen pour ce genre de chose. Vérifiez rapidement l'absence de liens morts, etc. sur un/n'importe quel site. Il suffit de le pointer vers n'importe quel URI et il affichera tous les liens sur ce site.

Desription du site:

Link Sleuth (TM) de Xenu vérifie les sites Web pour les liens cassés. La vérification des liens se fait sur les liens, les images, les cadres, les plug-ins, les arrière-plans, les cartes d'images locales, les feuilles de style, les scripts et les applis Java Java. Il affiche une liste constamment mise à jour des URL qui vous pouvez trier selon différents critères. Un rapport peut être produit à tout moment.

Il répond à toutes vos exigences en plus d'être scriptable car c'est une application Windows qui nécessite un démarrage manuel.

28
Matt Lacey

Nous utilisons et aimons vraiment Linkchecker:

http://wummel.github.io/linkchecker/

Il est open-source, Python, en ligne de commande, déployable en interne et produit dans une variété de formats. Le développeur a été très utile lorsque nous l'avons contacté avec des problèmes.

Nous avons un script Ruby qui interroge notre base de données de sites Web internes, lance LinkChecker avec les paramètres appropriés pour chaque site et analyse le XML que LinkChecker nous donne pour créer un rapport d'erreur personnalisé pour chaque site dans notre CMS.

33
Sean McMains

Vous voudrez peut-être essayer d'utiliser wget pour cela. Il peut guider un site, y compris les "pages requises" (c'est-à-dire les fichiers) et peut être configuré pour consigner les erreurs. Je ne sais pas s'il aura suffisamment d'informations pour vous mais c'est gratuit et disponible sur Windows (cygwin) ainsi que sur unix.

Quelle partie de votre liste le vérificateur de liens W3C ne remplit-il pas? Ce serait celui que j'utiliserais.

Alternativement, twill (basé sur python) est un petit langage intéressant pour ce genre de chose. Il a un module de vérification des liens mais je ne pense pas que cela fonctionne récursivement, donc ce n'est pas si bon pour l'araignée. Mais vous pouvez le modifier si cela vous convient. Et je peux me tromper, il pourrait y avoir une option récursive. Ça vaut le coup de vérifier, de toute façon.

2
Zac Thompson

J'ai toujours aimé linklint pour vérifier les liens sur un site. Cependant, je ne pense pas qu'il réponde à tous vos critères, en particulier aux aspects qui peuvent dépendre de JavaScript. Je pense également qu'il manquera les images appelées à l'intérieur de CSS.

Mais pour l'araignée toutes les ancres, cela fonctionne très bien.

1
artlung

InSite est un programme commercial qui semble faire ce que vous voulez (ne l'avez pas utilisé).

Si j'étais à votre place, j'écrirais probablement moi-même ce genre d'araignée ...

1
orip

Je ne suis pas sûr qu'il prend en charge l'authentification par formulaire, mais il traitera les cookies si vous pouvez le faire fonctionner sur le site et sinon je pense que Checkbot fera tout sur votre liste. J'ai déjà utilisé une étape du processus de construction pour vérifier que rien ne cassait sur un site. Il y a un exemple de sortie sur le site Web.

1
Ian G

Essayez http://www.thelinkchecker.com c'est une application en ligne qui vérifie le nombre de liens sortants, le classement des pages, l'ancre, le nombre de liens sortants. Je pense que c'est la solution dont vous avez besoin.

0
Barry

Essayez SortSite . Ce n'est pas gratuit, mais semble faire tout ce dont vous avez besoin et plus encore.

Alternativement, PowerMapper de la même entreprise a une approche similaire mais différente. Ce dernier vous donnera moins d'informations sur l'optimisation détaillée de vos pages, mais identifiera tout lien cassé, etc.

Avertissement: J'ai un intérêt financier dans l'entreprise qui fabrique ces produits.

0
Gary McGill