Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Практика · 7:25

Migration mapping checklist

Оберіть одну DTO з проєкту.
Для кожного field зафіксуйте source entity/service, mapping rule, nullability, required status, serializer behavior і regression test.
Додайте один gateway header, який має пройти до внутрішнього service.
Mapping table і один перевірений routing contract.

Міграція бази даних і тестування даних →

Практика · 6:10

Намалювати test-aware service map

Вибрати один user flow і намалювати client, gateway, services, databases і brokers.
Позначити synchronous і asynchronous contracts, state setup і failure boundaries.
Для кожної boundary записати одну contract check і одну end-to-end check.
Одна діаграма, за якою видно, де готувати data і як локалізувати test failure.

Вступ до API-автоматизації →

Python мануфактура · Сесії: AMA та PMP · 10:00–12:18

Gateway, load balancer і спільні залежності

Публічніше середовище може бути захищене authentication gateway, rate limits і load balancer замість VPN. Gateway приймає зовнішній трафік і маршрутизує його до потрібного сервісу; load balancer розподіляє запити між копіями. Під час проєктування тестів треба знати, які середовища ділять third-party інстанс і де саме застосовуються мережеві та частотні обмеження.

Інфраструктура автотестів та її нюанси →

Python мануфактура · Сесії: AMA та PMP · 25:34–30:48

API gateway і внутрішні services

Клієнт звертається до одного зовнішнього API gateway, хоча за ним працюють окремі user/account та appointment services. Gateway перетворює зовнішній route і проксіює request у внутрішню мережу до відповідного service; зовнішнє й внутрішнє найменування ресурсу може відрізнятися. Service, у свою чергу, може читати кілька tables, звертатися до інших services, виконувати filters і mappings, а controller повертає сформовану DTO. Тому response одного endpoint залежить не від одного методу, а від усього ланцюжка.

Міграція бази даних і тестування даних →

Python мануфактура · Сесії: AMA та PMP · 6:10–11:05

Ланцюг gateway, сервісів і invite token

[Дивитися з 06:10](https://www.youtube.com/watch?v=GwmAB4IvQUk&t=370s). У реальній архітектурі browser звертається до API gateway, той перевіряє authentication та authorization, передає запит backend-сервісу, а backend отримує шаблон або ініціює відправлення через інший сервіс. Invite token має бути згенерований правильним компонентом, переданий без зміни й мати визначений TTL. Якщо контракт нечіткий, один сервіс може додати зайвий або захардкоджений token, після чого формально валідний request завершується невалідним invite. Перевірка лише зовнішньої специфікації endpoint не знаходить помилку в розподілі відповідальності між сервісами.

Прихована складність бекенд-тестування →

Java Light · 6:10–8:55

Gateway і вкладена архітектура

Gateway може бути зовнішньою обгорткою над одним або кількома services. Тому один квадрат на high-level diagram може приховувати власну базу, декілька внутрішніх services і нові integrations. Кожен із цих components можна «наблизити» і знову побачити нову архітектуру. На новому проєкті варто попросити lead або developer намалювати таку service map, а потім уточнювати data stores і взаємодії. Це безпосередньо впливає на test design: де готувати state, які контракти перевіряти і де локалізувати падіння.

Вступ до API-автоматизації →

Java Light · 15:45–17:23

Protocols, API Gateway і Backend for Frontend

Окрім REST, системи використовують WebSocket, gRPC і GraphQL. Протокол обирається під задачу, тому перед автоматизацією потрібно зрозуміти не лише endpoint, а й модель комунікації. Backend for Frontend — це gateway з контрактом, зручним для конкретного client: web frontend, mobile application або окремого screen. Зовні він відкриває потрібні resources, а всередині може агрегувати кілька services з їхніми базами і queues.

Вступ до API-автоматизації →

Python мануфактура · Сесії: AMA та PMP · 30:48–34:21

Routing-регресії та роль API tests

Під час міграції можна правильно перенести service, але помилитися в gateway route: не прокинути authorization header, body або інший обов’язковий параметр. Клієнт передасть credentials, gateway прийме request, а внутрішній service поверне `401`, бо потрібний header загубився між ними. API tests швидко виявляють такі дефекти mapping, schema й routing без довгого пошуку причини через UI. Практична стратегія сесії: окремо перевіряти контракт ресурсу, окремо — ключові business flows, а під час database чи infrastructure migration запускати обидва набори як regression coverage.

Міграція бази даних і тестування даних →

Python мануфактура · Сесії: AMA та PMP · 0:00–2:00

Домовленість із командою замість маскування бота

Cloudflare, gateway або load balancer можуть блокувати automation за browser signals, JavaScript execution і частотою запитів. Надійний шлях — узгодити з developers та DevOps контрольований header, cookie, test account або environment flag, який переводить конкретний тестовий traffic у спеціальний режим. Редакційне security-застереження: це має бути вузький контракт із секретом, allowlist, аудитом і мінімальними правами, а не загальний спосіб вимкнути захист.

Антибот-захист у контрольованих автотестах →

Python мануфактура · Сесії: AMA та PMP · 7:28–10:47

Системна перевірка, інфраструктура й плато продуктивності

Системні тести дають сигнал не лише про бізнес-логіку. Вони можуть виявити, що health check бекенду зелений, але UI не працює через gateway, неправильну конфігурацію або несумісні версії фронтенду й бекенду. Це окремий клас ризику, який unit- та інтеграційні тести не закривають. AI-інструмент може прискорити написання регресійних тестів і фідбек розробникам, але цей ефект не обов’язково зростає нескінченно. У великому продукті підтримка наявного коду та впровадження нових змін із часом знову стають складнішими. Одна з причин — недетермінованість LLM: той самий запит у новому чаті може дати інший код. Команда мусить перевіряти результат, стабілізувати робочі інструкції та не плутати швидку генерацію з гарантованою коректністю.

Піраміда тестування, чому не API спочатку та як жити з упровадженням ШІ →

Python мануфактура · Сесії: AMA та PMP · 12:25–15:40

Мова як спосіб знайти правильний test level

Ширше знання стеків допомагає не дублювати один сценарій на найдорожчому рівні. Mobile behavior іноді краще перевірити XCTest або Kotlin test; business rule — backend integration test; а лише критичний cross-service flow залишити системним E2E. Вибір залежить від архітектури: частина failures виникає не в service, а в API gateway чи infrastructure. Тому «перенести все вниз» так само некоректно, як перевіряти все через UI. Потрібно розуміти, який рівень реально спостерігає ризик.

Який рівень програмування потрібен automation engineer →
Запитати в чаті про «gateway» →