Подготовка тестового стенда

Все мы прекрасно знаем, что без нормально подготовленного тестового стенда нет смысла вообще приступать к тестированию. Причина здесь, на мой взгляд, простая: на кривом стенде доверие к результатам тестов резко падает. Вне зависимости от результата — зеленый прогон или красный.

Но я тут хотел написать не о банальной ручной подготовке стенда, а об автоматизации этого процесса. Лично у меня это сейчас устроено так: накатываю пустой стенд. По минимуму — разворачиваю GUI, backend и пустую базу. Подготавливаю через GUI данные для конкретного сценария. Потом экспортом дергаю скрипты вставки, нумерую их от 00_name.sql и дальше по порядку. После этого собираю changelog со своими скриптами: в changeSet через include вставляю нужные файлы. Дальше через docker compose поднимаются нужные сервисы, а подготовленные changelog/sql-артефакты подхватываются в процессе раскатки.

Самое прикольное, на мой взгляд: у меня один и тот же механизм кочует из сценария в сценарий. Различие только в наполнении — какие именно скрипты вставки в базу и какие входные файлы нужны под конкретный кейс. И то, чем это запускается, — простой .sh-скрипт. В нем, например, есть git checkout origin/branch – path/to/file: так я подтягиваю со своей ветки нужные файлы и подменяю ими файлы на локальном репо под конкретный сценарий. Потом уже идет docker compose up -d --build … и прочие шаги подготовки.

Таким образом я избавил себя от вероятности что-то забыть при подготовке, убрал часть ручной рутины и в принципе сократил время. В чем суть то: на самом деле просто хотел поделиться, потому что сам порадовался, когда допер до этого механизма. Он простой, повторяемый и хорошо адаптируется под разные сценарии. Может, кому-то тоже подкинет идею для ускорения подготовки стенда.