QA-тестирование сайтов через прокси из разных стран
Релиз прошёл на staging в Frankfurt — а пользователь из Mexico City видит пустую корзину из-за CDN rule. Такие баги ловят не unit-тестами, а проверкой «глазами» локального пользователя. QA через прокси воспроизводит региональный контекст: IP, иногда язык, cookie consent, payment methods. Это стандарт для international product; прокси делает процесс повторяемым и автоматизируемым.
Что тестировать по регионам
Контент и legal — GDPR banner в EU, CCPA link в California, запрет определённых товаров. Commerce — валюта, VAT display, shipping zones, local payment (iDEAL, PIX). Performance — TTFB через regional CDN edge; прокси не заменяет RUM, но показывает SSR path. SEO hreflang — редирект на правильный /pl/ subfolder. Third-party scripts — analytics и ads грузятся только где разрешено.
API layer тоже geo-aware: pricing microservice возвращает разные tariffs. Integration tests через curl с HTTPS-прокси NEONPROXY дополняют UI suite.
Матрица тестов
Таблица: Country | Proxy ID | Locale | Currency expected | Critical flows. Минимум smoke на каждый launch market. Regression — полный checkout на top-5 revenue countries. Document в TestRail или Xray; при добавлении гео в NEONPROXY — новая строка в матрице.
Не дублируйте тесты на «похожих» регионах без причины — PL и CZ разные legal contexts. См. также геоблокировки для negative cases.
Playwright и Cypress
Playwright launch с proxy server socks5://user:pass@host:port. Отдельный browser context на страну — parallel workers в CI. storageState не шарьте между DE и FR contexts.
Cypress experimental proxy support ограничен; чаще используют browser-level или external HTTP proxy env. Для visual regression — Percy/Chromatic с geo metadata в test name.
Пример env в GitHub Actions: secrets PROXY_DE, PROXY_US из vault. Nightly cron — matrix strategy country. Fail fast если geo mismatch в preflight step.
Manual exploratory QA
QA engineer включает HTTPS-прокси в Chrome profile «Germany», отдельный профиль «Japan». Bookmarks на staging с basic auth. VPN не даёт такой чистой воспроизводимости — прокси credentials можно ротировать без смены OS network.
Exploratory charter: «30 минут как пользователь TR — оплата, возврат, support chat». Findings привязаны к proxy geo, не «у меня дома».
Типичные ложные баги
CAPTCHA на DC IP — не product bug, а infra. Fix: другой subnet или lower frequency. Stale CDN cache — hard refresh не помогает, нужен cache bust query. Timezone JS vs server — не geo proxy issue. Mixed content when proxy breaks TLS — check anonymity test.
Flaky tests from rotating IP mid-session — use sticky IP per test case.
Интеграция с CI/CD
Stage 1: unit. Stage 2: integration без geo. Stage 3: geo smoke через прокси на merge to main. Stage 4: full matrix nightly — дольше, дороже в proxy traffic, но ловит regressions.
Cost control: IPv6 для read-only page loads, IPv4 для checkout with payment sandbox. API управления пулом — NEONPROXY API.
Для мобильных приложений добавьте в матрицу эмуляторы с прокси и real device farm — responsive web через прокси не заменяет проверку native SDK оплаты Apple Pay и Google Pay в целевой стране.
Чеклист QA-лида
Preflight proxy check в чекере. Isolated context per geo. Assert currency + legal text, not only HTTP 200. Screenshot on failure with geo tag. Rotate credentials quarterly. Train team: proxy — part of test environment, not personal VPN.
При масштабировании на 15+ стран support NEONPROXY поможет с bulk geo без ручного копирования credentials.
Отчёт о регрессии должен явно указывать гео каждого упавшего кейса: «checkout DE failed» и «checkout failed» — разные задачи для разработки. Храните proxy_id в артефактах CI хотя бы 30 дней — так проще воспроизвести flaky-тест на той же подсети.
Новые QA-инженеры проходят onboarding с одним «эталонным» гео: они повторяют smoke вручную через прокси, сверяют результат с автотестом и только потом получают доступ к полной матрице — это снижает ложные баги из-за неправильно настроенного профиля браузера.