Environment Matters

Привіт друзі! Прийшов час розказати вам коротку, сумну та повчальну байку, як в мене автотести не працювали та що я з цим робив.
Сетап такий: автотести на Python + Playwright, виконуються кожну ніч в Bitbucket Pipeline, в офіційному плейрайтівському докер контейнері. Ну і періодично локально їх виконую для дебагу та баг фіксу.
Працювали ми в такому форматі досить довго та продуктивно, аж поки не трапились майже в один і той самий час дві події:
1️⃣ замовник змінив купу вимог до вже стабільного та покритого автотестами функціоналу
2️⃣ повномасштабне вторгнення ₚосії (і зміна вимог вже і не така велика проблема 😥)

Перше призвело до великої кількості падаючих тестів – не встигав їх оновлювати з тою ж швидкістю, як команда розробки оновлювала функціонал.
Друге – в цілях покращення безпеки та мінімізації ризиків замовник обмежив доступ до своїх ресурсів, що на деякий час зробило неможливим виконання більшості тестів локально.

Через деякий час питання з доступами вирішили, тести майже всі оновили, і я почав отримувати когнітивний дисонанс – при виконанні тестів локально – майже всі зелені 🟢, тобто походять. А нічний запуск в бітбакеті – 90% червоні 🔴, тобто тести не пройшли.
Майже тиждень намагався зрозуміти, в чому може бути потенційна проблема:
✅ передивився всі логи, скріншоти та помилки
✅ оновив Playwright, і фреймворк і драйвери
✅ оновив докер в пайплайні
✅ оптимізував самі тести, їх фікстури та процедуру запуску

Розгадка виявилась простою і змусила відчути себе тупим 🤦‍♂️ – коли один з сервісів бекенду замовника тимчасово впав, я побачив ті самі помилки, що і в пайплайні! Весь цей час тести просто не мали повноцінного доступу до середовища через заходи безпеки.

Додавання пулу IP-адрес Bitbucket (є в їх офіційній документації) в Whitelist 📃 файрволу замовника вирішило проблему

Зробив собі помітку на майбутнє – завжди перевіряти доступи всіх середовищ одне до одного

P.S. Ох же ці розподілені середовища та мікросервіси! От раніше – впав додаток, і нічого не працює. А зараз – впав один сервіс, і все наче і працює, але нічого корисного не робить, сиди й розбирайся 👴

Позначки:
10 Серпня 2022
Автор: 
  • Про контекст
  • 🏆 Найбільше IT-змагання в Європі DEV Challenge оголошує реєстрацію на 19-й сезон
  • Я спробував замінити себе на ШІ
  • Оптиміст бачить проєкт наполовину готовим…

Залишити коментар

Залишити вiдгук