← Назад к вопросам

Можно ли поставить прокси на симулятор?

2.3 Middle🔥 111 комментариев
#Другое

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Можно ли поставить прокси на симулятор?

Да, прокси можно установить на симулятор iOS или Android. Этот процесс является стандартной практикой для тестирования сетевых взаимодействий приложения в условиях ограниченного или контролируемого сетевого трафика. Настройка прокси позволяет QA Automation инженерам:

  • Мониторить и анализировать HTTP/HTTPS запросы и ответы между приложением и сервером.
  • Модифицировать запросы и ответы для тестирования различных сценариев (например, ошибок сети, медленного соединения).
  • Внедрять моки (mock) серверных ответов для изолированного тестирования клиентской логики.
  • Проверять безопасность передачи данных (например, наличие токенов в заголовках).

Настройка прокси на симулятор iOS (Xcode Simulator)

Для симулятора iOS прокси настраивается через системные Network Preferences macOS, поскольку симулятор использует сетевые настройки хоста (компьютера, на котором он запущен).

Основные шаги:

  1. Убедитесь, что на компьютере запущен прокси-сервер (например, Charles Proxy, Proxyman или Burp Suite).
  2. Получите IP адрес компьютера и порт прокси (например, 192.168.1.10:8888).
  3. В симуляторах iOS нет прямого UI для настройки прокси, поэтому используется один из следующих методов:

Метод 1: Настройка через командную строку (предпочтительный для Automation) Используйте xcrun simctl для управления симуляторами. Команда позволяет установить прокси глобально для конкретного симулятора.

# Получить список всех симуляторов
xcrun simctl list

# Установить прокси на конкретный симулятор (например, для симулятора с UUID)
xcrun simctl proxy <simulator-UUID> on <proxy-host> <proxy-port>

# Пример: установка прокси Charles (порт 8888) на симулятор
xcrun simctl proxy 12345678-ABCD-EFGH-IJKL-MNOPQRSTUVWX on 192.168.1.10 8888

# Отключить прокси
xcrun simctl proxy <simulator-UUID> off

Метод 2: Настройка через Network Preferences macOS Это влияет на все сетевые интерфейсы компьютера, включая симулятор.

  • Откройте System Preferences > Network.
  • Выберите активное соединение (например, Wi-Fi) → Advanced > Proxies.
  • Включите Web Proxy (HTTP) и Secure Web Proxy (HTTPS), указав адрес и порт локального прокси.
  • Важно: Для работы с HTTPS трафиком необходимо также установить и доверить корневой SSL Certificate прокси-сервера на симулятор. В Charles это делается через пункт Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser, а затем доверие сертификату в Settings > General > About > Certificate Trust Settings на симуляторе.

Настройка прокси на симулятор Android (Android Studio Emulator)

Для Android Emulator настройка прокси более прямолинейна и может быть выполнена через командную строку при запуске или через ADB.

Метод 1: Запуск эмулятора с параметрами прокси При запуске эмулятора из командной строки можно указать прокси-настройки.

# Запуск конкретного эмулятора с прокси
emulator -avd <avd-name> -http-proxy http://<proxy-host>:<proxy-port>

# Пример запуска эмулятора 'Pixel_4_API_31' с прокси Charles
emulator -avd Pixel_4_API_31 -http-proxy http://192.168.1.10:8888

Метод 2: Настройка через ADB (для уже запущенного эмулятора) Используйте ADB для изменения системных настроек.

# Установка глобального HTTP прокси
adb shell settings put global http_proxy <proxy-host>:<proxy-port>

# Пример
adb shell settings put global http_proxy 192.168.1.10:8888

# Очистка прокси (отключение)
adb shell settings put global http_proxy :0

Метод 3: Настройка вручную через Settings на эмуляторе Аналогично реальному устройству:

  • Откройте Settings > Network & Internet > Wi-Fi.
  • Выберите текущую сеть (например, AndroidWifi) → Modify network > Advanced options.
  • В разделе Proxy выберите Manual и введите Hostname и Port прокси-сервера.

Практическое применение в QA Automation

В контексте автоматизации тестов (например, с Appium, Selenium или нативными фреймворками) прокси часто используется для:

  1. Интеграции с инструментами мониторинга сети: Скрипты могут автоматически запускать прокси (Charles/Proxyman), настраивать его на симулятор через xcrun simctl или adb, и затем анализировать сохраненные (har) файлы трафика для валидации корректности API calls.
# Примерный логический поток в автотесте
import subprocess

def setup_proxy_for_simulator(simulator_uuid, proxy_host, proxy_port):
    # Включение прокси на симулятор iOS
    subprocess.run(['xcrun', 'simctl', 'proxy', simulator_uuid, 'on', proxy_host, str(proxy_port)])
    # Здесь можно добавить логику установки и доверия SSL сертификату

def capture_and_validate_traffic():
    # После выполнения тестовых действий в приложении
    # Импортировать .har файл из Charles и проверить ключевые запросы
    pass
  1. Создания условий тестирования: Прокси-сервер может быть настроен на замедление ответов (throttling) или возвращение заранее подготовленных ошибок (404, 500), что позволяет тестировать устойчивость приложения к проблемам сети без модификации реального сервера.

  2. Mock-серверы: Инструменты типа WireMock, запущенные локально как прокси, могут перехватывать запросы и возвращать мокированные ответы, что идеально для тестирования приложения в отрыве от бэкенда.

Ключевые ограничения и нюансы

  • HTTPS и SSL Pinning: Приложения, использующие SSL Pinning, могут отвергать трафик, проходящий через прокси, поскольку сертификат прокси не совпадает с ожидаемым сертификатом сервера. Это может потребовать дополнительных манипуляций (например, отключения pinning в debug-версии приложения).
  • Системный уровень: Настройка прокси на симулятор часто является системной и влияет на все приложения в симуляторе, что не позволяет изолировать трафик только тестируемого приложения.
  • Стабильность: В некоторых версиях симуляторов/эмуляторов настройка прокси через командную строку может работать нестабильно. Рекомендуется проверять актуальность методов для текущей версии IDE (Xcode/Android Studio).

Таким образом, установка прокси на симулятор — не только возможна, но и является мощным инструментом в арсенале QA Automation для глубокого тестирования сетевых функций приложения.

Можно ли поставить прокси на симулятор? | PrepBro