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

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

Термін · 6:00

load_dotenv

load_dotenv() читає key-value pairs з .env і додає їх до environment; за замовчуванням уже наявні environment variables не перезаписуються.

2.1. відео, енв файл →

Нюанс · 6:00

Environment variables мають вищий пріоритет

Оскільки load_dotenv() не override-ить наявні environment variables за замовчуванням, CI або shell може без зміни .env надати іншу конфігурацію.

2.1. відео, енв файл →

Нюанс · 8:20

Секрети лише через environment

API token, email і password не повинні потрапляти в код, конспект або Git; клієнт має читати потрібний секрет із runtime environment.

3. API preconditions →

Нюанс · 2:00

Official test keys — не production bypass

Google документує окремі test keys для reCAPTCHA v2 і спосіб створити окремий v3 key для test environment. v3 scores у staging можуть відрізнятися від production. Це засіб контрольованого тестування, а не підстава вимикати server-side verification у production.

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

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

Environment variables і межа простого `.env`

Environment variable передає процесу значення на кшталт base URL, username або password без hardcode у вихідному коді. У Unix-подібній оболонці змінну можна експортувати перед запуском; у Windows вона задається іншим системним механізмом. `.env` є зручним локальним представленням таких пар ключ–значення, яке застосунок читає під час старту. Проблема з'являється, коли один продукт має кілька web/API/admin-сервісів і кожному потрібні окремі URL та credentials. Плоский набір ключів розростається, префікси дублюються, а залежності між значеннями стають неочевидними. Для невеликого проєкту `.env` достатній; переходити на складніший формат варто після реального зростання конфігурації.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

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

Локальні пакети й ізоляція проєктів

Мови й екосистеми мають власні package managers або build tools: pip, npm, Maven, Gradle та інші. Вони завантажують бібліотеки з центральних репозиторіїв і можуть кешувати їх локально, але залежності конкретного проєкту визначаються окремо. Python virtual environment ізолює бібліотеки одного проєкту від іншого. На одному комп’ютері можуть співіснувати робочі й особисті репозиторії з різними версіями Playwright, pytest та інших пакетів. Конфлікт можливий, якщо запустити код не тим глобальним Python або неправильно вибрати interpreter. Самі залежності коректно створених `venv` не повинні впливати на сусідні проєкти.

Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →

Python мануфактура · Програма курсу · 8:30–11:30

Поведінка тестів у CI

Багато CI-систем встановлюють стандартну environment variable `CI`. Проєкт читає її, щоб увімкнути CI-специфічні налаштування: headless browser, відсутність локального video recording або іншу політику traces. Це дозволяє зберегти один кодовий шлях із мінімальною конфігураційною різницею. Зміни комітяться й пушаться в task branch, після чого результат перевіряється не лише за загальним статусом, а й за logs конкретної job.

2. Практика та написання пайплану CI/CD →

Python мануфактура · Програма курсу · 12:00–16:00

Константи й помірний DRY

Повторювані звернення до environment variables піднімаються у зрозумілі константи на рівні файлу: `LOGIN_URL`, `EMAIL`, `PASSWORD`. IDE Replace використовується для послідовної заміни старих виразів. Автор свідомо не додає YAML, кілька конфігураційних класів чи систему environment-профілів. Поточна потреба — один передпродакшн стенд, тому достатньо `.env`. Розширення потрібне лише тоді, коли реально з’являться різні середовища з відмінними наборами параметрів.

2.1. відео, енв файл →

Python мануфактура · Програма курсу · 24:00–31:30

Secrets, variables та environments

Runner повинен отримати base URLs, users, passwords, tokens та інші параметри без commit у репозиторій. У GitHub Actions значення можна зберігати як repository secrets/variables або прив’язувати до environments на кшталт DEV, STG і PROD. Environment-level значення зручні, коли ті самі ключі мають різні значення та правила доступу для різних середовищ. На реальному проєкті права на створення або зміну secrets можуть належати не автоматизатору. Це окрема залежність від власників репозиторію чи DevOps-команди, яку треба з’ясувати заздалегідь. Для малого набору параметрів не потрібно будувати складну config-систему: достатньо найпростішого контрольованого scope, який не розкриває секрети.

1. Теорія CI/CD та як ви можете інтегрувати тести в пайплайн →

Python мануфактура · Програма курсу · 31:30–35:44

Scope конфігурації та execution image

Repository-level secrets доступні workflow всього репозиторію, тоді як environment secrets можна обмежити конкретним оточенням і його protection rules. Workflow явно посилається на потрібні значення, тому конфігурація стає частиною контракту запуску, але самі секрети не з’являються у YAML. Кожну job варто уявляти як чистий контейнер або машину на базі визначеного image, наприклад `ubuntu-latest`. Наступне практичне відео показує, як на такому runner послідовно виконати checkout, setup, install і tests.

1. Теорія CI/CD та як ви можете інтегрувати тести в пайплайн →

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 мануфактура · Програма курсу · 0:00–0:33

Теми мінікурсу

Модуль послідовно охоплює типи даних, оператори, умови, цикли, comprehensions, функції, файли, exceptions, модулі, ООП, type hints, pytest та environment variables. Це базові конструкції, які автоматизатор зустрічає в UI- й API-тестах.

0 вступ в заняття →

Python мануфактура · Сесії: 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.

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

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

Ринок, consulting і практичне навчання

Внутрішня pentest-команда потрібна не кожному продукту постійно. Багато компаній залучають зовнішній security assessment перед важливим запуском, аудитом або після інцидентів; навіть зрілі внутрішні команди можуть замовляти незалежну перевірку. Як навчальний старт рекомендуються практичні курси, де учень підіймає vulnerable environment, працює з Docker, читає API specification і пробує реальні tools. Так формується зв’язок між знахідкою scanner-а, її відтворенням та поясненням impact.

Перехід у пентестинг: що важливо →
Запитати в чаті про «environment» →