Ко всем статьям

Индивидуальные mobile proxy для TestComplete

2026-02-11
Индивидуальные mobile proxy для TestComplete

Практическое руководство: как использовать мобильные прокси в SmartBear TestComplete для гео‑QA веб‑части продукта и проверки антибот‑слоя на “мобильных” ASN.

Что такое TestComplete и для каких задач он подходит

TestComplete — инструмент функционального UI‑тестирования от SmartBear для автоматизации проверок в реальных приложениях и браузерах. Его часто выбирают в enterprise‑командах, где нужны стабильные регрессионные прогоны, понятная поддержка разных UI‑технологий и возможность работать как “без кода”, так и со скриптами.

На практике TestComplete удобен, когда нужно:

  • покрыть регрессию UI для веб‑части продукта (кабинет, админ‑панель, SaaS‑интерфейс);
  • тестировать desktop‑приложения на Windows (внутренние корпоративные клиенты, POS‑софт, инсталляторы);
  • автоматизировать типовые пользовательские сценарии: логин, роли, формы, оплаты, настройки, уведомления, экспорт/импорт;
  • запускать тесты на отдельных машинах/VM через лёгкий раннер (TestExecute) для параллельных прогонов.

Где TestComplete особенно удобен: desktop и web

В веб‑тестировании TestComplete работает с реальными браузерами на Windows и даёт доступ к объектной модели страницы (элементы, свойства, действия). Это помогает делать тесты устойчивее, чем “клик по координатам”, особенно когда UI динамический.

В desktop‑части сильная сторона — работа с Windows‑интерфейсом, диалогами, системными окнами, контролами разных фреймворков и сценариями установки/обновления. Для компаний это часто критично: часть продукта может быть web, а часть — desktop‑утилиты или “тонкие” клиенты.

Типовые сценарии enterprise UI automation

Чаще всего автоматизируют не “всё подряд”, а то, что даёт максимальный эффект в регрессии:

  • Аутентификация и сессии: логин, MFA, восстановление пароля, тайм‑ауты, “запомнить меня”.
  • Роли и доступы: разные права для пользователей/админов, скрытые разделы, 403/404 при прямом заходе.
  • Критичные бизнес‑флоу: создание/редактирование сущностей, подтверждение действий, статусы, история.
  • Формы и валидации: маски, локали (десятичные разделители), обязательные поля, ошибки.
  • Платежи и подписки: checkout, webhook‑статусы, страницы успеха/ошибки.
  • UI‑устойчивость: проверка, что страницы не “ломаются” после релиза (критические блоки, навигация).

Зачем нужны мобильные прокси: гео‑QA и антибот на “мобильных” ASN

Если продукт имеет веб‑интерфейс и работает в разных странах, одних “локальных” тестов недостаточно. Типичные ситуации:

  • часть функций скрыта или меняется по регионам (комплаенс, лицензии, партнёры);
  • разные валюты, налоги, тексты, баннеры согласия, правила доставки/оплаты;
  • антибот‑слой (WAF/бот‑защита) по‑разному реагирует на ASN и тип сети: датацентр/VPN vs мобильная сеть;
  • нужно воспроизвести “поведение пользователя со смартфона” не только по User‑Agent, но и по сетевым атрибутам.

Mobile proxy здесь — это выход в интернет с IP‑адреса, принадлежащего мобильному оператору (мобильный ASN). Такие адреса часто имеют иной “репутационный профиль” в антибот‑системах и лучше отражают реальные условия доступа конечных пользователей.

Когда mobile proxy дают максимальную пользу

  • Гео‑ограничения и фича‑флаги: проверить, что в стране A модуль включён, а в стране B скрыт/заблокирован.
  • Цены и локализация: валюта, НДС, округления, язык, форматы адресов.
  • Антибот и риск‑скоры: CAPTCHA, 403, дополнительные проверки при логине, лимиты частоты.
  • Подозрительный трафик: когда корпоративная инфраструктура “похожа” на датацентр и триггерит защиту.
  • Проверка инцидентов: “в Турции не пускает в кабинет”, “в Канаде исчез раздел Billing”.

Как совместить TestComplete и прокси: практические подходы

TestComplete управляет браузером/приложением на Windows‑машине, поэтому прокси обычно подключают на уровне окружения выполнения:

  • Системный прокси Windows (WinINET): удобно для сценариев, где тест использует браузеры/компоненты, читающие системные настройки.
  • Прокси на уровне браузера: запуск браузера с параметрами прокси или с отдельным профилем, где прокси задан.
  • Отдельная VM под страну: самый надёжный вариант для масштабирования: каждая VM имеет свой исходящий IP (mobile proxy), а тесты запускаются параллельно через TestExecute.
  • PAC/маршрутизация: если нужно проксировать только часть доменов (например, только web‑часть, а API оставить напрямую).

Ключевая идея: не “вшивать” прокси в тесты, а делать его параметром окружения/джобы в CI. Тогда один и тот же набор тестов можно запускать для разных стран без дублирования.

Что важно для стабильности: sticky‑сессии и управление IP

Для UI‑тестов стабильность важнее частой ротации. Если IP меняется посреди логина или оплаты, возрастает риск лишних проверок или разлогина.

  • Sticky‑сессия (фиксация IP на N минут) подходит для полного e2e‑флоу: логин → действие → проверка.
  • Ротация между тестами полезна, когда нужно снизить накопление риск‑скора или проверить поведение на разных IP в пределах страны.
  • Пулы по странам — отдельные списки endpoint’ов для каждого региона, чтобы не смешивать гео в одном прогоне.

Кейс: SaaS‑панель с регионально скрытыми функциями

Представим SaaS‑кабинет, где часть функций доступна только в определённых странах (например, разные платёжные провайдеры, юридические ограничения или партнёрские интеграции). Команда хочет автоматизировать проверку, что:

  • в стране UA виден модуль “Payments” и доступен провайдер X;
  • в стране DE модуль “Payments” есть, но провайдер X скрыт, вместо него доступен Y;
  • в стране US часть настроек недоступна, и UI корректно показывает объяснение (баннер/tooltip/FAQ);
  • антибот‑слой не выдаёт лишних CAPTCHA/403 при нормальной скорости действий.

Решение: для каждой страны выделяется отдельный mobile proxy endpoint (или пул), запускается один и тот же набор тестов, но с разными переменными окружения: COUNTRY=UA, PROXY=..., LOCALE=uk-UA, TIMEZONE=Europe/Kyiv. В отчёте фиксируются IP, страна, ASN, время, версия сборки — так проще отличить “реальный баг” от проблем сети или нестабильного прокси.

Как организовать гео‑матрицу прогонов

Чтобы это работало системно, обычно делают матрицу:

  • Страна/регион (UA, PL, DE, US…)
  • Тип сети (mobile ASN как “реалистичный” профиль, иногда — отдельно датацентр для сравнения)
  • Браузер (Edge/Chrome/Firefox — в зависимости от аудитории)
  • Роль (user/admin/partner)

Далее в CI или планировщике джобы запускаются параллельно. Для TestComplete удобно, что раннер может исполнять тесты на отдельных машинах без полной IDE (TestExecute), что упрощает развёртывание “фермы” для гео‑проверок.

Советы, чтобы тесты не превратились в “флейк‑фест”

  • Явно проверяйте гео: в начале теста убедитесь, что IP действительно в нужной стране (через ваш эндпойнт или надёжный geolocation API) и логируйте результат.
  • Контролируйте скорость: антибот часто реагирует на “нечеловеческую” частоту действий. Добавляйте реалистичные паузы там, где пользователь читает/ждёт.
  • Отдельные аккаунты под гео: чтобы не ловить блокировки из‑за входов из разных стран одним логином.
  • Чистое состояние: перед каждым тестом — очистка cookies/localStorage или отдельные профили, чтобы не смешивать локали.
  • Диагностика: на падении сохраняйте скрин, DOM/логи и параметры сети (IP/ASN/страна), иначе проблема будет “невоспроизводимой”.

Итог

TestComplete хорошо подходит для enterprise UI automation, особенно когда нужно стабильно гонять регрессию для web/desktop и масштабировать выполнение на нескольких машинах. Добавив индивидуальные мобильные прокси, вы получаете реалистичную гео‑проверку: как выглядит продукт в разных странах и как ведёт себя антибот‑слой на мобильных ASN. Лучший результат даёт подход “прокси как параметр окружения”, sticky‑сессии на e2e‑флоу и чёткое логирование сетевых атрибутов в отчётах.

Как строить тесты: keyword‑тесты и скрипты

В TestComplete обычно используют два подхода:

  • Keyword‑driven — сценарий собирается из операций в визуальном редакторе. Удобно, когда в команде есть QA без глубокого программирования, но нужно поддерживать регрессию.
  • Скрипты — логика описывается кодом (часто выбирают JavaScript или Python). Скрипты дают гибкость: параметризация, утилиты, сложные проверки, работа с тест‑данными и отчётами.

Компромиссный вариант: ключевые e2e‑флоу держать в keyword‑формате, а общие хелперы (логин, проверка IP/гео, генерация данных, логирование) вынести в скриптовые библиотеки.

Web‑часть: кроссбраузерность и мобильная эмуляция

Для гео‑QA важно прогонять один и тот же набор сценариев в тех браузерах, которыми реально пользуются клиенты. Это помогает отличить региональные ошибки от браузерных.

Если нужно проверить “мобильный веб”, можно запускать тесты в режиме мобильной эмуляции браузера: адаптивность, меню, модалки, поведение форм. Но эмуляция — это про UI и фронтенд, а не про сетевую реальность. Для антибот‑проверок ключевую роль играет именно mobile proxy (мобильный ASN).

Data‑driven для гео‑проверок

Гео‑матрица отлично ложится на data‑driven подход. Вместо трёх копий теста “UA/DE/US” делайте один тест, который читает параметры из JSON/CSV: страна, прокси‑endpoint, ожидаемые фичи, валюта, язык, скрытые разделы. Тогда добавление нового региона — это одна строка в данных.

Чеклист внедрения mobile proxy в geo‑QA

  • 1) Матрица: выберите страны/браузеры по реальной аналитике.
  • 2) Изоляция: по возможности отдельная VM или хотя бы отдельный профиль браузера на страну.
  • 3) Проверка гео на старте: логируйте IP/страну/ASN и падайте “быстро”, если гео неверное.
  • 4) Sticky для e2e: один IP на полный флоу, ротация — между тестами.
  • 5) Контроль скорости: реалистичные паузы и лимиты логинов.
  • 6) Артефакты: скриншоты/логи + сетевые параметры в отчёте.

Антибот: что учитывать в тестах

Антибот смотрит не только на IP. На результат влияют частота действий, повторяемость паттернов, чистота профиля, заголовки и “нечеловеческая” скорость. Цель QA — не обходить защиту, а подтвердить, что обычный пользователь не страдает. Поэтому проектируйте прогоны как “реалистичное использование”, а не как максимальную скорость.