php - que - ¿Tiene controles de salud en su aplicación web o sitio web?
partes de una pagina web html (3)
Echa un vistazo a Nagios . Se puede configurar para sondear las URL y buscar la presencia / ausencia de cadenas, buscar ciertos códigos de respuesta y un montón de otras cosas. Si expone las cosas que desea buscar en una URL, Nagios puede hacer el resto.
El soporte de @Franz Nagios cuesta dinero, pero el software de monitoreo central es gratis. Es un poco el modelo de Redhat.
En el pasado, he creado scripts basados en PHP "control de estado" para varios proyectos, pero siempre se han personalizado para la ocasión y no se han escrito para la abstracción como un producto independiente. Me gustaría saber si existe una solución de este tipo.
Lo que quiero decir con "comprobación de estado" es una página web protegida que funciona de manera similar a un conjunto de pruebas unitarias, pero a un nivel más operativo, que muestra estados rojos / amarillos / verdes para cosas como
- ¿Los directorios de caché pueden escribirse?
- ¿Es correcta la versión de PHP? ¿Se instalan las extensiones necesarias?
- ¿El servidor de la base de datos es accesible?
- ¿Existen las tablas necesarias en la base de datos?
- ¿Hay suficiente espacio en disco disponible?
- ¿Es accesible la página principal del sitio y se procesa por completo (= sin errores de PHP)?
- ¿Las sumas de comprobación MD5 de las bibliotecas del proyecto coinciden con las originales?
- ¿La salida de la página principal pasa el validador W3C?
¿Hace esto, o parte de él, en sus aplicaciones y sitios web?
¿Existen herramientas estandarizadas para esto que traigan toda la funcionalidad para realizar las pruebas (idealmente como complementos), y solo necesitan configurarse en consecuencia?
Estoy hablando de una solución liviana que puede ejecutarse incluso en los paquetes web más pequeños basados en PHP sin extensiones ni acceso al servidor.
¿Existe, tal vez, una forma de configurar esto usando uno de los marcos de pruebas de unidades disponibles para PHP (preferiblemente PHPUnit)? Si es así, ¿conoce algún recurso / tutorial que describa cómo?
Actualización: no parece haber una solución popular lista para esto, de lo contrario, con más de 100 vistas, estoy seguro de que habría alguna mención de ello. Dado que hay un interés inicial en la construcción de una herramienta como un proyecto de código abierto, no dude en publicar cómo sería una solución ideal para usted y qué características debería tener.
Pregunta interesante, pero esto es bastante amplio. Todavía no he visto una herramienta de prueba de unidades que realice todas las pruebas de backend, de medición y frontend a la vez. Revisé esta lista , pero nadie lo hace todo. Sin embargo, hay un enfoque genérico, xUnit (prueba totalmente automatizada).
Los principales bloqueadores son que las pruebas de backend son específicas de la plataforma / DB y que las pruebas de metadatos son específicas del lenguaje de programación. Y aún así, combinar esas limitaciones con pruebas frontend. La herramienta debería ser compatible con casi todos los idiomas y plataformas que el mundo conoce. No creo que esa herramienta esté disponible en el mundo de código abierto. Es una utopía
En teoría, es posible tener un marco de prueba con capacidades de complemento, tal vez basado en la ideología xUnit, pero todavía no se ha escrito / inventado / abierto. ¿Tú? De hecho, es un agujero en el mercado.
En cualquier caso, para las pruebas de unidades frontend (HTML / CSS / JS / forms) recomendaría Selenium , o si tiene el dinero, TestComplete . He visto que se usó en IBM hace varios años, fue increíble verlo en acción y los evaluadores estaban muy contentos con esto.
Para las pruebas de unidades medianas (código de programación, lógica de negocios), simplemente continúe con las herramientas de pruebas de unidades específicas del lenguaje de programación, como PHPUnit para PHP y JUnit para Java.
En cuanto a las pruebas de unidad de backend (DB, sistema de archivos), he usado PGTap para PostgreSQL, pero también hay herramientas DB genéricas disponibles para esto, como SQLUnit (que, sin embargo, se actualizó por última vez hace casi 4 años ...). Para las condiciones del sistema de archivos del disco local, deberá obtener los lenguajes de scripting específicos de la plataforma.
Puede hacer todo esto con CruiseControl y phpUnderControl. Pero, por supuesto, debe especificar todas las tareas que desea ejecutar para que su proyecto pase todas las verificaciones.
http://topecoders.blogspot.com/2010/04/how-to-install-cruisecontrol.html
Con CruiseControl, puede agregar múltiples tareas para ejecutar en cada compilación de su proyecto.