Есть ли у вас проверки здоровья в вашем веб-приложении или на веб-сайте?

В прошлом я создал PHP-скрипты для проверки работоспособности для нескольких проектов, но они всегда были настроены по заказу и не были написаны для абстракции как самостоятельного продукта. Я хотел бы знать, существует ли такое решение.

То, что я называю «проверкой работоспособности», является защищенной веб-страницей, которая функционирует так же, как набор модульных тестов, но на более оперативном уровне, отображая статусы красного / желтого / зеленого цвета для таких вещей, как

  • Доступны ли каталоги кэша?
  • Верно ли версия PHP, требуются ли расширения?
  • Доступен ли сервер базы данных?
  • Нужны ли необходимые таблицы в базе данных?
  • Достаточно ли свободного места на диске?
  • Доступна ли первая страница сайта и отображает полностью (= нет ошибок PHP)?
  • Соответствуют ли контрольные суммы MD5 проектов библиотекам исходных?
  • Выходит ли на передней странице валидатор W3C?

Вы делаете это – или его части – в своих приложениях и на веб-сайтах?

Существуют ли какие-либо стандартизированные инструменты для этого, которые обеспечивают всю функциональность для проведения тестов (в идеале, как плагины), и нужно просто настроить их соответствующим образом?

Я говорю о легком решении, которое может работать даже на самых крошечных веб-пакетах на базе PHP без расширения и доступа к серверу.

Может ли быть способ установить это, используя одну из фреймворков Unit Testing, доступных для PHP (желательно PHPUnit)? Если да, то знаете ли вы какие-либо ресурсы / учебники, в которых излагаются способы?

Обновление: похоже, для этого нет популярного готового решения, иначе, с более чем 100 видами, я уверен, что было бы упоминание об этом. Увидев, что есть некоторый первоначальный интерес к созданию такого инструмента, как проект с открытым исходным кодом, пожалуйста, не стесняйтесь публиковать, какое идеальное решение для вас будет выглядеть, и какие функции он должен будет иметь.

Интересный вопрос, но это довольно широко. Я еще не видел инструмент для тестирования модулей, который одновременно выполняет все бэкэнда, midend и frontend. Я проверил этот список , но никто не делает все это. Однако существует один общий подход – xUnit (полностью автоматическое тестирование).

Основными блокировщиками являются то, что тестирование бэкэнд является специфичным для платформы / БД, и что тестирование midend является специфичным для языка программирования. И тогда все же объединить эти ограничения с интерфейсом тестирования. Затем инструмент должен поддерживать почти все языки и платформы, о которых мир знает. Я не думаю, что такой инструмент будет доступен в мире с открытым исходным кодом. Это утопия.

Теоретически, действительно возможно иметь тестовую структуру с возможностями плагина, возможно, основанную на идеологии xUnit, но еще есть, чтобы написать / изобретать / открывать ее. Вы? Это действительно дыра на рынке.

Во всяком случае, для тестирования модулей интерфейса (HTML / CSS / JS / forms) я бы рекомендовал Selenium , или если у вас есть деньги, TestComplete . Я видел, что он использовался в IBM несколько лет назад, было здорово видеть это в действии, и тестеры были очень счастливы с этим.

Для тестирования модулей midend (код программирования, бизнес-логика) просто продолжайте использовать специальные инструменты для тестирования языка программирования, такие как PHPUnit для PHP и JUnit для Java.

Что касается тестирования бэкэнд-модулей (DB, файловая система), я использовал PGTap для PostgreSQL, но для этого существуют также общие инструменты DB, такие как SQLUnit (который, однако, последний раз обновляется почти 4 года назад …). Для условий файловой системы на локальном диске вам придется захватывать языки сценариев на платформе.

Отъезд Nagios . Он может быть настроен для опроса URL-адресов и проверки наличия / отсутствия строк, поиска определенных кодов ответа и совсем другого материала. Если вы выставляете материал, который хотите найти в URL-адресе, Nagios может сделать все остальное.

Поддержка @Franz Nagios стоит денег, но основное программное обеспечение для мониторинга бесплатное. Это своего рода модель Редхата.

Вы можете сделать все это с помощью CruiseControl и phpUnderControl. Но, конечно, вам нужно указать все те задачи, которые вы хотите выполнить, чтобы ваш проект проходил все проверки.

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

С CruiseControl вы можете добавить несколько задач для каждой сборки вашего проекта.