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

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

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

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

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

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

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

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

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

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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