2010-03-09 8 views
38

J'ai construit des scripts de "bilan 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 en tant que produit indépendant. Je voudrais savoir si une telle solution existe.Avez-vous des bilans de santé dans votre application Web ou votre site Web?

Ce que je meam 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, montrant les statuts rouge/jaune/vert pour des choses comme

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

Faites-vous cela - ou des parties de celui-ci - dans vos applications et sites Web?

Y at-il des outils standardisés pour cela qui apportent toutes les fonctionnalités pour effectuer les tests (idéalement comme des plugins), et ont juste besoin d'être configurés en conséquence?

Je parle d'une solution légère qui peut fonctionner même sur les plus petits paquets Web basés sur PHP sans extensions ni accès au serveur.

Existe-t-il, peut-être, un moyen de configurer ceci en utilisant l'un des frameworks de test unitaire disponibles pour PHP (de préférence PHPUnit)? Si oui, connaissez-vous des ressources/tutoriels décrivant comment?

Mise à jour: Il ne je suis sûr y aurait-il semble pas être une solution prête à l'emploi populaire pour cela, sinon, avec plus de 100 vues, été une mention. Étant donné qu'il y a un intérêt initial dans la construction d'un tel outil en tant que projet open source, n'hésitez pas à poster à quoi ressemblerait une solution idéale pour vous et quelles fonctionnalités il devrait avoir.

+0

Un outil commun pour cela avec peut-être un fichier XML comme config serait vraiment intéressant. – Franz

+1

@Franz oui absolument, avec des plugins pour les opérations de fichiers (existe, est inscriptible, md5), mySQL, et un client Web pour récupérer et valider des pages. Serait vraiment utile de construire! .... –

+0

Que faites-vous si un bilan de santé révèle un problème? Envoyez-vous un email? – Mawg

Répondre

0

Découvrez Nagios. Il peut être configuré pour interroger les URL et rechercher la présence/l'absence de chaînes, rechercher certains codes de réponse et bien d'autres choses. Si vous exposez les éléments que vous souhaitez rechercher dans une URL, Nagios peut faire le reste.

@Franz Le support de Nagios coûte de l'argent, mais le logiciel de surveillance de base est gratuit. C'est un peu le modèle Redhat.

+0

Reed encore une fois, il n'a pas dit cela, mais je crois que quelque chose de pas commercial serait mieux (et cela ne ferait que contribuer à une partie de toute façon) :-( – Franz

+0

@trenton Cheers, je sais de Nagios et tandis que plus de matches Je suis à la recherche de quelque chose à déposer sur un site web ou une application existante, capable même de fonctionner sur un petit paquet d'hébergement partagé, ce que Nagios ne peut pas faire. question de rendre ce point beaucoup plus clair. –

3

Question intéressante, mais c'est assez large. Je n'ai pas encore vu un outil de test unitaire qui effectue tous les tests backend, midend et frontend à la fois. J'ai vérifié this list, mais personne ne le fait tout. Il existe cependant une approche générique, xUnit (test entièrement automatisé).

Les principaux bloqueurs sont les tests backend qui sont spécifiques à la plate-forme/à la base de données et qui sont spécifiques au langage de programmation. Et encore pour combiner ces limitations avec le test de frontend.L'outil devrait alors supporter presque toutes les langues et plateformes dont le monde a conscience. Je ne pense pas qu'un tel outil serait disponible dans le monde open source. C'est une utopie.

En théorie, il est en effet possible d'avoir un framework de test avec des capacités de plugin, peut-être basé sur l'idéologie xUnit, mais il faut encore l'écrire/inventer/opensource. Toi? C'est en effet un trou sur le marché. De toute façon, pour les tests unitaires frontend (HTML/CSS/JS/formulaires), je recommanderais Selenium, ou si vous avez l'argent, TestComplete. J'ai vu qu'il était utilisé chez IBM il y a plusieurs années, c'était génial de le voir en action et les testeurs étaient très contents de ça. Pour les tests unitaires de fin de ligne (code de programmation, logique métier), il suffit de continuer avec les outils de test unitaire spécifiques au langage de programmation tels que PHPUnit pour PHP et JUnit pour Java. En ce qui concerne les tests unitaires backend (DB, filesystem), j'ai utilisé PGTap pour PostgreSQL, mais il existe aussi des outils de base de données génériques comme SQLUnit (qui est cependant mis à jour depuis presque 4 ans ...). Pour les conditions du système de fichiers disque local, vous devrez utiliser des langages de script spécifiques à la plate-forme.

0

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 réussisse toutes les vérifications.

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

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

Questions connexes