Мне нужно выполнить простые функциональные тесты (представьте, что дымовые тесты завершаются за несколько секунд для каждого приложения) на размещенных веб-сервисах, чтобы убедиться, что после автоматического развертывания ничего серьезного не сломано. Мне не нужна надежная логика извлечения или утверждения, и мне не нужна возможность нагрузочного тестирования. JMeter кажется, что он сделает свою работу, но может быть излишним. Существуют ли другие проекты с открытым исходным кодом или программные продукты, которые лучше подходят?
Существует два типа развертываний, для которых может использоваться этот тест. Во-первых, в процессе разработки и конвейера непрерывной интеграции я использую Vagrant для тестирования автоматизации Chef. После запуска Chef Client я хотел бы, чтобы Vagrant запустил дымовой тест. Если тест не пройден, CI знает, что проверенный код Chef не пройден. В настоящее время я делаю это, заставляя Vagrant запускать средство обеспечения Powershell, которое представляет собой простой скрипт, который выполняет wget для проверки вызова веб-служб, просто проверяя наличие определенных фрагментов ожидаемого ответа.
Второй вариант использования — в AWS, где я хотел бы настроить HealthCheck ELB для вызова веб-службы, которая будет проверять любые приложения, установленные на этом сервере, и в случае успеха возвращать HTTP 200 для всех последующих запросов. Целью этого будет гарантировать, что приложение завершило процесс развертывания и было успешно развернуто до входа в балансировщик нагрузки.
Бонусные баллы: Существуют ли какие-либо существующие службы, которые могут самостоятельно обнаруживать веб-сайты/службы, установленные на сервере, и любые тестовые сценарии, которые могут присутствовать на них, и запускать их автоматически?