Есть ли у вас проверки здоровья в вашем веб-приложении или на веб-сайте?
В прошлом я использовал 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 вы можете добавить несколько задач для каждой сборки вашего проекта.