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

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

Java · Advanced: API-автоматизація · 10:00–20:00

Access token, refresh token і application registration

Access token короткоживучий; refresh token дає можливість отримати новий без повторної interactive authorization. Lifetime є server configuration, а не універсальні «дві години». На developer portal демонструється registration application/client, вибір scopes і redirect/callback URL. Client secret не можна вбудовувати в public mobile/browser client; там потрібен Authorization Code + PKCE.

OAuth 2.0 і конфігурація →

Java · Advanced: API-автоматизація · 1:30:00–1:50:00

Keycloak-style flow і token propagation

На іншому прикладі показані session cookie, target URL, user credentials, authorization code і token exchange. Далі access token передається в controller requests або обмінюється на service token згідно з архітектурою. Тести мають перевіряти expired/wrong audience/insufficient scope, а не лише valid token. Окрема test application для auth load зменшує ризик засмітити production client/user data.

OAuth 2.0 і конфігурація →

Java · Основний курс · 1:20:17–1:23:19

Повторне використання token і controllers у `BaseTest`

Щоб не передавати token в кожен controller method, `BaseController` зберігає його у field і додає authorization header, якщо значення не порожнє. Token-setting method повертає controller type, щоб його можна було викликати у fluent chain. Після цього resource methods більше не мають token parameter. Controller instances та login setup виносяться в `BaseTest`. Token отримується один раз у `@BeforeAll`, після чого ним конфігуруються `ProjectController` і `SuiteController`. Фінальний test залишає видимими лише сценарій, test data і assertions, а transport details залишаються у controllers.

API-автоматизація: MVC і Jackson →

Java · Сесії: 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 · Основний курс · 10:50–14:47

Логування і витягування token з response

`log().all()` показує request і response, включно з form parameters; `prettyPrint()` дає компактніший вивід body. Повні headers потрібні лише тоді, коли діагностика вимагає більше, ніж response body. Щоб використати token в наступних requests, response переводиться в extract mode, а значення зчитується через JsonPath `getString`. Отриманий token зберігається у змінну для виклику projects API.

Rest Assured: базове використання →

Java · Advanced: API-автоматизація · 2:00:00–2:12:28

Token lifecycle у test runner і controllers

Token можна отримати в suite/JUnit lifecycle і передати в base controller. Це прибирає repeated login з кожного test і зберігає transport setup в одному місці. Один global token доречний лише для одного immutable identity без parallel mutation. Для tests різних users/scopes потрібен session/token per test context або safe cache з expiry/refresh — інакше паралельні tests впливатимуть один на одного.

OAuth 2.0 і конфігурація →

Java · Сесії: AMA та PMP · 2:00–5:15

Як reCAPTCHA приймає рішення

Frontend збирає поведінкові signals і отримує token; backend передає token провайдеру та порівнює отриманий score з власним threshold. Автотест виглядає як бот і часто отримує низький score. Для test environment використовують офіційний test key або узгоджений mode, у якому frontend не показує challenge, а backend не викликає production verification. Так тест перевіряє application flow, не підмінюючи окрему перевірку реальної CAPTCHA integration.

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

Java · Advanced: API-автоматизація · 20:00–30:00

User flow і server-to-server flow

User flow емулює дії людини і consent, service flow представляє machine client. Якщо test завжди бере admin/service token, він не перевіряє real user authorization boundaries. Потрібні positive/negative checks для scopes, audience, client type і resource access. Token exchange чи внутрішні service tokens не слід вигадувати за Network tab — їх contract має дати backend/security team.

OAuth 2.0 і конфігурація →

Java · Advanced: API-автоматизація · 0:00–10:00

OAuth roles і місце в архітектурі

Authorization server видає/validates tokens і може масштабуватися окремо. Client — application, яка просить access; resource owner дає consent; resource server приймає access token і захищає API. Відео розрізняє user authorization і service-to-service access. Токен має представляти конкретного subject/client і не давати більше privileges, ніж потрібно.

OAuth 2.0 і конфігурація →

Java · Додаткові матеріали · 0:00–2:10

GitHub-акаунт і авторизація в JetBrains IDE

Спочатку потрібно створити та підтвердити GitHub-акаунт. У settings JetBrains IDE знаходиться розділ GitHub, де можна увійти через browser authorization. У відео також згадується personal access token як альтернатива. Ця авторизація дає IDE можливість створювати, клонувати та оновлювати repositories.

Публікація Java-проєкту на GitHub →
Запитати в чаті про «token» →