2010-03-09 16 views
38

He creado scripts basados ​​en PHP "health check" para varios proyectos en el pasado, pero siempre fueron hechos a medida para la ocasión y no escritos para abstracción como un producto independiente. Me gustaría saber si existe una solución de este tipo.¿Tiene controles de salud en su aplicación web o sitio web?

Lo que Meam por "chequeo" es una página web protegida que funciona como un conjunto de pruebas de unidad, pero en un nivel más operativo, que muestra los estados de rojo/amarillo/verde para cosas como

  • ¿Los directorios de caché pueden escribirse?
  • ¿Es la versión de PHP correcta, se requieren extensiones instaladas?
  • ¿Se puede acceder al servidor de la base de datos?
  • ¿Existen las tablas necesarias en la base de datos?
  • ¿Hay suficiente espacio en disco disponible?
  • ¿Se puede acceder a 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 simples 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 ser una solución lista popular para esto, de lo contrario, con más de 100 puntos de vista, estoy seguro de que no habría habido alguna mención de la misma. 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.

+0

Una herramienta común para esto con tal vez un archivo XML como config sería realmente interesante. – Franz

+1

@Franz, sí, con plugins para operaciones de archivos (existe, se puede escribir, md5), mySQL y un cliente web para buscar y validar páginas. ¡Realmente valdría la pena construir! ... –

+0

¿Qué hacer si un control de salud muestra un problema? ¿Enviarse un correo electrónico? – Mawg

Respuesta

0

Echa un vistazo 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.

@Franz La compatibilidad con Nagios cuesta dinero, pero el software de supervisión central es gratuito. Es un poco el modelo de Redhat.

+0

Reedición de nuevo, él no dijo eso, pero creo que algo no comercial sería mejor (y esto solo ayudaría con una parte de todos modos) :-( – Franz

+0

@trenton Cheers, sé de Nagios y aunque es más que coincide los requisitos, es una exageración total para lo que tengo en mente. Estoy buscando algo para colocar en un sitio web o aplicación existente, incluso capaz de ejecutarse en un pequeño paquete de alojamiento compartido, que Nagios no puede hacer. pregunta para aclarar ese punto. –

3

Interesante pregunta, 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é this list, pero nadie lo hace todo. Sin embargo, existe un enfoque genérico, xUnit (prueba completamente automatizada).

Los principales bloqueadores son que las pruebas de back-end 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 probar la unidad de medida (código de programación, la lógica de negocios), simplemente continúe con las herramientas de prueba de unidades específicas del lenguaje de programación como PHPUnit para PHP y JUnit para Java.

En cuanto a las pruebas de unidad backend (DB, sistema de archivos), he usado PGTap para PostgreSQL, pero también hay herramientas DB genéricas disponibles para esto como SQLUnit (que 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.

Cuestiones relacionadas