Основанный на докере инструмент тестирования инфраструктуры

Я в настоящее время пытаюсь переместить основанную на VM инфраструктуру в Основанную на докере и рискнуть для добавления тестирования поведения к этой инфраструктуре. Таким образом, я стремлюсь иметь все изменения, которые я вношу в основную конфигурацию системы в коде (например, в Dockerfile), мерзавец имеющий версию и (в идеальном мире), каждое изменение должно иметь тестируемый эффект.

Примеры для тестов я хочу сделать:

  • Если я добавляю учетную запись пользователя и правило разрешения в моем контейнере "пост-ГРЭС", то пользователь "x" должен смочь получить доступ (только) к базе данных "y" (только) от "веб-" контейнера.
  • Если я изменяюсь, постфиксная конфигурация любят, вставляют изменение здесь, то пользователи - люди должны пройти проверку подлинности, но пользователи системы могут послать неаутентифицируемое электронное письмо.
  • Если я изменяюсь, конфигурация Apache любят, вставляют изменение здесь, то среднее время отклика понижается x мс.

Вещи, которые я действительно не хочу тестировать (не причиняет боль, если я мог, хотя):

  • Файл x должен присутствовать.
  • Сервис y должен быть установлен.

Я задавался вопросом, что является хорошим / общим подходом, чтобы сделать инфраструктуру, тестирующую, такую как вышеупомянутое, и было бы радо получить любой совет или услышать лучшие практики. (Я обнаружил serverspec, но мне казалось, как будто это будет поддерживать скорее второй вид тестов; во всех примерах я читал, это скорее проверит системное состояние, чем поведение системы.)

4
задан 26 December 2014 в 04:32
1 ответ

В одном «тестировании поведения» вы смешиваете различные идеи. Тестирование безопасности (доступ ...), мониторинг приложений (время отклика ...), соответствие инфраструктуры (файл / служба должны присутствовать ...).

Поскольку вы переходите на инфраструктуру с использованием версии кода, вы сначала следует протестировать его, как любой другой код, и serverpec - хороший инструмент для этого. Я лично предпочитаю testinfra, эквивалентную платформу на основе Python. Есть и другие, такие как goss, robotframework, inspec ... Там вы можете многое протестировать: прослушивание порта 80, запущенная служба, наличие файла конфигурации. И более того, поскольку вы можете подключить любой фрагмент кода, вы можете прочитать файл конфигурации и проверить, имеет ли пользователь X доступ к базе данных Y, но не к базе данных Z.

Что касается времени ответа, это тема мониторинга, если речь идет о живом среды или нагрузочного тестирования, если речь идет о тестировании перед запуском. Есть масса возможностей для мониторинга, таких как nagios, zabbix ... Для нагрузочного тестирования я использую locust.

0
ответ дан 3 December 2019 в 04:23

Теги

Похожие вопросы