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

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

Різні ролі означають різні функціональні тести

Free plan, trial та enterprise мають різні можливості: ліміти створення проєктів, доступні кнопки й повідомлення. Це окремі вимоги рольової моделі, тому їх варто перевіряти окремими тестами. Наприклад, free-plan тест підтверджує відповідну позначку тарифу та обмеження створення проєкту, а enterprise-тест — доступність повного сценарію. Розгалуження між цими очікуваннями в одному тесті приховує дефект, якщо середовище випадково відкрило не ту роль.

На сторінці може бути різний контент — що робити? →

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

Окремі `storageState` і suites для кожного контексту

Fixture може завантажувати заздалегідь підготовлений Playwright `storageState` з потрібними cookies та `companyId`. Тоді free-plan і enterprise suites стартують одразу у своїх контрольованих контекстах і не залежать від випадкового вибору компанії. Та сама модель працює не лише для тарифів: у медичному продукті це можуть бути doctor і patient, а всередині ролі — додаткові рівні доступу. Спільний end-to-end сценарій між ролями залишається окремим тестом, бо має іншу бізнес-мету.

На сторінці може бути різний контент — що робити? →

Python мануфактура · Програма курсу · 3:45–10:45

Стабільні перевірки тарифу й перемикання проєкту

Tooltip із назвою тарифу з’являється після hover, тому тест спочатку знаходить стабільний label, виконує hover і лише потім перевіряє текст підписки. DOM/attribute breakpoints допомагають зрозуміти, який компонент створює анімацію. Повторювані елементи Enterprise і Free додаються в page object, а тест перевіряє стан до та після `select_company`. Це формує observable contract, на який можна спертися під час оптимізації авторизації.

2.1. Storage state: практична реалізація, фікстури для ролей →

Python мануфактура · Програма курсу · 15:40–20:05

Створення state для Free plan

Перший варіант дублює Enterprise state й через стандартний модуль `json` очищає cookie `Company ID`. Пошук проходить масив cookies, змінює лише елемент із потрібним `name` і записує окремий файл. Цей підхід є оптимізацією для конкретного застосунку, а не універсальним правилом Playwright. Якщо backend session або інший state також прив’язаний до tenant, безпечніше реально перемкнути проєкт у браузері й зберегти отриманий context.

2.1. Storage state: практична реалізація, фікстури для ролей →
Запитати в чаті про «free-plan» →