Ответ
Да, это стандартная практика для анализа сетевого трафика мобильного приложения во время тестирования. Я часто использую Charles Proxy или Fiddler для перехвата, модификации и отладки HTTP/HTTPS-запросов.
Настройка прокси для разных платформ:
-
Android Emulator:
- Через командную строку при запуске:
emulator -avd Pixel_4_API_30 -http-proxy http://192.168.1.10:8888 - Через настройки внутри запущенного эмулятора (Settings → Network & internet → Internet → кнопка шестеренки у сети → Advanced → Proxy).
- Через командную строку при запуске:
-
iOS Simulator: Он использует сетевые настройки хостовой машины (Mac). Поэтому нужно:
- Настроить прокси (например, Charles) на самом Mac.
- В симуляторе трафик автоматически будет идти через этот прокси.
- Важно: Для HTTPS-трафика необходимо установить SSL-сертификат Charles в симулятор (Help → SSL Proxying → Install Charles Root Certificate in iOS Simulators).
Автоматизация в UI-тестах (Пример на Java + Appium): Иногда нужно динамически менять прокси в тесте.
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class ProxyTest {
public static void main(String[] args) {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("deviceName", "emulator-5554");
// Настройка прокси
Proxy proxy = new Proxy();
proxy.setHttpProxy("192.168.1.10:8888");
caps.setCapability(CapabilityType.PROXY, proxy);
AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723"), caps);
// ... выполнение тестов с перехватом трафика
driver.quit();
}
}
Цели такого тестирования: проверка корректности отправляемых запросов и ответов, тестирование поведения приложения при ошибках сети (с помощью инструментов типа Charles, которые могут симулировать медленную сеть или обрывы).