Я в настоящее время пытаюсь переместить основанную на VM инфраструктуру в Основанную на докере и рискнуть для добавления тестирования поведения к этой инфраструктуре. Таким образом, я стремлюсь иметь все изменения, которые я вношу в основную конфигурацию системы в коде (например, в Dockerfile), мерзавец имеющий версию и (в идеальном мире), каждое изменение должно иметь тестируемый эффект.
Примеры для тестов я хочу сделать:
Вещи, которые я действительно не хочу тестировать (не причиняет боль, если я мог, хотя):
Я задавался вопросом, что является хорошим / общим подходом, чтобы сделать инфраструктуру, тестирующую, такую как вышеупомянутое, и было бы радо получить любой совет или услышать лучшие практики. (Я обнаружил serverspec, но мне казалось, как будто это будет поддерживать скорее второй вид тестов; во всех примерах я читал, это скорее проверит системное состояние, чем поведение системы.)
В одном «тестировании поведения» вы смешиваете различные идеи. Тестирование безопасности (доступ ...), мониторинг приложений (время отклика ...), соответствие инфраструктуры (файл / служба должны присутствовать ...).
Поскольку вы переходите на инфраструктуру с использованием версии кода, вы сначала следует протестировать его, как любой другой код, и serverpec - хороший инструмент для этого. Я лично предпочитаю testinfra, эквивалентную платформу на основе Python. Есть и другие, такие как goss, robotframework, inspec ... Там вы можете многое протестировать: прослушивание порта 80, запущенная служба, наличие файла конфигурации. И более того, поскольку вы можете подключить любой фрагмент кода, вы можете прочитать файл конфигурации и проверить, имеет ли пользователь X доступ к базе данных Y, но не к базе данных Z.
Что касается времени ответа, это тема мониторинга, если речь идет о живом среды или нагрузочного тестирования, если речь идет о тестировании перед запуском. Есть масса возможностей для мониторинга, таких как nagios, zabbix ... Для нагрузочного тестирования я использую locust.