38 votes

Avez-vous des contrôles de santé dans votre application web ou votre site web ?

J'ai construit des scripts de "contrôle de santé" basés sur PHP pour plusieurs projets dans le passé, mais ils étaient toujours faits sur mesure pour l'occasion et non écrits pour l'abstraction comme un produit indépendant. J'aimerais savoir si une telle solution existe.

Ce que j'entends par "bilan de santé" est une page web protégée qui fonctionne un peu comme une suite de tests unitaires, mais à un niveau plus opérationnel, en affichant des statuts rouge/jaune/vert pour des choses comme

  • Les répertoires du cache sont-ils accessibles en écriture ?
  • La version de PHP est-elle correcte, les extensions requises sont-elles installées ?
  • Le serveur de la base de données est-il joignable ?
  • Les tables nécessaires existent-elles dans la base de données ?
  • L'espace disque disponible est-il suffisant ?
  • La page d'accueil du site est-elle accessible et s'affiche-t-elle complètement ( = pas d'erreurs PHP) ?
  • Les sommes de contrôle MD5 des bibliothèques du projet correspondent-elles aux sommes originales ?
  • La sortie de la page d'accueil passe-t-elle le validateur W3C ?

Faites-vous cela - ou des parties de cela - dans vos applications et sites web ?

Existe-t-il des outils standardisés pour cela qui apportent toutes les fonctionnalités nécessaires pour effectuer les tests (idéalement sous forme de plugins), et qu'il suffit de configurer en conséquence ?

Je parle d'une solution légère qui peut fonctionner même sur le plus petit des paquets web basés sur PHP, sans extension ni accès au serveur.

Existe-t-il, peut-être, un moyen de configurer cela en utilisant l'un des frameworks de tests unitaires disponibles pour PHP (de préférence PHPUnit) ? Si c'est le cas, connaissez-vous des ressources ou des tutoriels expliquant comment faire ?

Mise à jour : Il ne semble pas y avoir de solution populaire toute faite pour cela, sinon, avec plus de 100 vues, je suis sûr qu'il en aurait été question. Puisqu'il y a un intérêt initial pour la construction d'un tel outil en tant que projet open source, sentez-vous libre de poster ce à quoi ressemblerait une solution idéale pour vous, et quelles caractéristiques elle devrait avoir.

3voto

BalusC Points 498232

Question intéressante, mais c'est assez général. Je n'ai pas encore vu d'outil de test unitaire qui fasse tous les tests backend, midend et frontend en même temps. J'ai vérifié cette liste mais personne ne peut tout faire. Il existe cependant une approche générique, xUnit (tests entièrement automatisés).

Les principaux obstacles sont que les tests backend sont spécifiques à la plate-forme/base de données et que les tests midend sont spécifiques au langage de programmation. Il reste ensuite à combiner ces limitations avec les tests frontaux. L'outil devrait alors supporter presque tous les langages et toutes les plateformes que le monde connaît. Je ne pense pas qu'un tel outil serait jamais disponible dans le monde du logiciel libre. C'est une utopie.

En théorie, il est en effet possible d'avoir un cadre de test avec des capacités de plugin, peut-être basé sur l'idéologie de xUnit, mais il faut encore l'écrire/inventer/opensourcer. Vous ? C'est en effet un trou dans le marché.

Quoi qu'il en soit, pour les tests unitaires frontaux (HTML/CSS/JS/formulaires) je recommanderais Sélénium ou si vous avez l'argent, TestComplete . Je l'ai vu être utilisé chez IBM il y a plusieurs années, c'était génial de le voir en action et les testeurs en étaient très satisfaits.

Pour les tests unitaires intermédiaires (code de programmation, logique métier), il suffit de continuer avec les outils de tests unitaires spécifiques au langage de programmation comme PHPUnit pour PHP et JUnit pour Java.

En ce qui concerne les tests unitaires du backend (DB, système de fichiers), j'ai utilisé PGTap pour PostgreSQL, mais il existe également des outils de BD génériques disponibles pour cela, tels que SQLUnit (qui est cependant mis à jour pour la dernière fois il y a presque 4 ans...). Pour les conditions du système de fichiers du disque local, vous devrez utiliser des langages de script spécifiques à la plate-forme.

0voto

Trenton Points 2315

Vérifiez Nagios . Il peut être configuré pour interroger les URL et rechercher la présence ou l'absence de chaînes de caractères, rechercher certains codes de réponse, et bien d'autres choses encore. Si vous exposez les éléments que vous voulez rechercher dans une URL, Nagios peut faire le reste.

@Franz Le support de Nagios est payant, mais le logiciel de surveillance de base est gratuit. C'est un peu le modèle Redhat.

0voto

battcor Points 41

Vous pouvez faire tout cela avec CruiseControl et phpUnderControl. Mais bien sûr, vous devez spécifier toutes les tâches que vous voulez exécuter pour que votre projet passe tous les contrôles.

http://topecoders.blogspot.com/2010/04/how-to-install-cruisecontrol.html

Avec CruiseControl, vous pouvez ajouter plusieurs tâches à exécuter pour chaque build de votre projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X