Тестирование
Лучше тестовая среда - предпрод среда - прод среда
Виды тестирования
| E2E | Тестирование основного бизнес функционала. Объединенная работа нескольких сервисов |
| Системное тестирование |
Тестирование одного сервиса. Обычно ручное. Варианты:
|
| Интеграционное тестирование | Тестирование взаимодействий сервисов |
| Unit тестирование | Проверка корректности отдельных модулей |
| Mock тестирование | Фиктивная реализация интерфейса для тестирования |
Quality gate - модуль тестирования
Выполнение скрипта с кодом возврата:
tasks:
- script: test_script_1
- script: test_script_2 --parameter1 value1 --parameter2 value2
Проверка наличия файлов модулем stat
tasks:
- stat:
path: /path/to/something
register: p
- assert:
that:
- p.stat.exist and p.stat.isdir
Использование модуля assert
tasks:
- shell: /usr/bin/some_command --some_parameter value
register: cmd_result
- assert:
that:
- "'not ready' not in cmd_result.stderr"
- "'gizmo enabled' in cmd_result.stdout"
Жизненный цикл тестирования:
- Использовать один и тот же playbook при тестировании всех сред, включая production
- Запускайте тестирование каждый раз
- Использовайте тесты, написанные командой обеспечения качества
- Используйте те же самые тесты при деплое в production
Достижение непрерывного развертывания
- Использовать автоматизацию при развертывании виртуальных машин (развертывание по кнопке)
- При помощи CI системы развертывайте на тестовой среде
- Одна из задач при деплое вызывает тестирующий скрипт со статусом Прошел/ не прошел перед каждым деплоем
- Если деплой прошел успешно, то сборка повторяется на production контуре
Пример схемы CI/CD
Molecule
Поддерживает текущую версию и -1 промежуточной (второй цифры). Установка:
pipx install molecule
