Как смоделировать медленное интернет-соединение на iOS и Android: практическое руководство

11/6/2022
·
Обновлено
7.8.2026

В этой статье покажем, как «испортить» интернет на тестовом устройстве без лишних хлопот.

iOS

Для начала расскажем о тестировании iOS-приложений с помощью стандартной утилиты Network Link Conditioner. Она позволяет тестеру настраивать интернет-соединение так, как нужно.

Чтобы включить эту функцию на iPhone, вам понадобится устройство на базе macOS:

1) Скачать и установить Xcode на Mac

2) Открыть Xcode на Mac

3) Подключить iPhone к Mac

4) Разрешить доступ Mac к iPhone

🐌 Как имитировать медленное подключение к Интернету на iOS и Android [QA гайд], image #1

5) Открыть настройки на iPhone

6) Проскроллить вниз

7) Нажать «Developer»

🐌 Как имитировать медленное подключение к Интернету на iOS и Android [QA гайд], image #2

8) Нажать «Network Link Conditioner»

🐌 Как имитировать медленное подключение к Интернету на iOS и Android [QA гайд], image #3

9) Выбрать пресет сети или создать свой

10) Включить переключатель «Enable»

🐌 Как имитировать медленное подключение к Интернету на iOS и Android [QA гайд], image #4

iOS позволяет выбрать один из предустановленных пресетов качества соединения или создать свой собственный.

Для собственного пресета доступны следующие настройки:

🐌 Как имитировать медленное подключение к Интернету на iOS и Android [QA гайд], image #5

Здесь мы видим, что Apple позаботился о возможности тестирования приложений при разных уровнях качества соединения и дал нам практически все нужные настройки.

Познакомившись с Network Link Conditioner на iOS, мы были уверены, что такая же функция будет и на Android. О, как мы ошибались.

Android

Эмулировать медленное или нестабильное соединение на реальном Android с помощью стандартных средств оказалось невозможно. Поэтому у меня было два варианта: использовать приложения из Google Play для эмуляции медленного соединения или настроить точку доступа к интернету особым образом.

C приложениями у меня не сложилось ☹ Все приложения, которые дают нам эту функцию, требуют Root-доступа, а это, в свою очередь, разрушает концепцию тестирования в реальных условиях.

Поэтому, оставив Root-доступ на крайний случай, я решила подробнее рассмотреть второй путь — настройку точки доступа.

В студенчестве, когда мобильный интернет быстро заканчивался (а нужно было что-то почитать или посмотреть на паре и так далее), мы часто использовали iPhone как точку доступа. В голову пришла идея — совместить студенческий опыт с недавно полученными знаниями.

Использование Network Link Conditioner и точки доступа на устройствах с macOS или iOS не требует специальных знаний и легко настраивается. Это именно то, что нужно, если хочется сэкономить время.

Итак, для эмуляции плохого соединения на Android нужен сам устройство на Android и iPhone с включёнными Developer Tools.

  1. Делаем iPhone точкой доступа (Настройки > Режим модема)
  2. Настраиваем соединение с помощью Network Link Conditioner
  3. Подключаемся с Android к точке доступа
  4. Готово. Вы восхитительны :)

Использование облачных ферм

Сейчас для тестирования приложения на большом ассортименте новейших и не очень устройств совсем не обязательно иметь собственную ферму мобильных телефонов. Это ещё и неудобно — многие работают удалённо. Мы в Fora Soft всё чаще используем услуги облачных ферм устройств.

В некоторых таких фермах, например, Browserstack или LambdaTest, есть возможность ограничить скорость сети — замедлить соединение — при тестировании на мобильных устройствах.

Опции троттлинга на Browserstack
Опции троттлинга на Browserstack

Для использования троттлинга может понадобиться платная подписка. Например, в ферме Browserstack индивидуальная подписка для тестирования приложений на реальных устройствах стоит от $29 в месяц.

Тестирование на Android-эмуляторе

Эмулятор — программа для ПК, которая имитирует другую операционную систему. Эмулятор Android воспроизводит работу смартфона и позволяет тестировать мобильные приложения, даже если реального устройства нет.

Тестирование на эмуляторах не сравнится с тестированием на реальных устройствах, но на этапе начальной разработки этого достаточно.

На эмуляторах Android Studio можно задать тип мобильной связи (LTE, EDGE и другие). У каждого типа — свои ограничения по скорости соединения:

gsm — GSM/CSD (up: 14.4, down: 14.4)
hscsd — HSCSD (up: 14.4, down: 57.6)
grps — GRPS (up: 28.8, down: 57.6)
edge — EDGE/EGPRS (up: 473.6, down: 473.6)
umts — UMTS/3G (up: 384.0, down: 384.0)
hsdpa — HSDPA(up: 5760.0, down: 13,980.0)
lte — LTE (up: 58,000, down: 173,000)
evdo — EVDO (up: 75,000, down: 280,000)
full — No limit, the default (up: 0.0, down: 0.0)

Как протестировать приложение на Android-эмуляторе с ограниченным интернет-соединением?

  1. Установите Android Studio
  2. Создайте эмулятор с помощью Android Virtual Device Manager
  3. В настройках эмулятора при его создании или редактировании выберите тип сети:
  • Нажмите Show advanced settings
Расширенные настройки в Android Studio
Расширенные настройки в Android Studio
  • В разделе Network выберите Speed
Как выбрать Speed в Network
Как выбрать скорость в Network
  1. Запустите эмулятор
  2. Запустите приложение на эмуляторе
  3. Выключите Wi-Fi на эмуляторе, чтобы он использовал настройки мобильного соединения

Изменение типа сети в настройках телефона

Выбрать конкретный тип мобильной связи можно и на реальном устройстве под управлением Android или iOS. Для этого понадобится само устройство и действующая SIM-карта с подключённым интернетом.

Как переключиться на другую сеть на Android-устройстве:

  1. Откройте настройки / Settings
  2. Перейдите в «Сеть и интернет» / Network & Internet
  3. Перейдите в «Интернет» / Internet
  4. Откройте «Настройки SIM-карты»
  5. Нажмите «Предпочтительный тип сети» / Preferred network type

Как переключиться на другую сеть на Android

Актуально для Android 12. Названия и расположение разделов могут отличаться в зависимости от версии ОС и модели устройства.

Как переключиться на другую сеть на iOS-устройстве:

  1. Откройте настройки / Settings
  2. Перейдите в Сотовая связь / Mobile Data
  3. Перейдите в Параметры / Mobile Data Options
  4. Нажмите Голос и данные / Voice & Data

Как переключиться на другую сеть на iOS

Актуально для iOS 15.

Симуляция медленного соединения в инструменте для дебаггинга Charles

Если облачные фермы — это дорого, запуск эмулятора — сложная задача, а SIM-карт с оплатой интернета под рукой нет, можно воспользоваться опцией троттлинга сети в приложении Charles.

Вообще вы можете использовать Charles, чтобы отслеживать трафик мобильных приложений во время функционального тестирования или дебаггинга. Но этот же инструмент можно использовать для тестирования при медленном соединении.

Как сымитировать медленное соединение с помощью Charles

  1. Настройте хост-машину с установленным Charles в качестве прокси для устройства или приложения, которое нужно протестировать. Подробнее об этом — в документации Charles
  2. В Charles перейдите в Proxy > Throttle settings
  3. Кликните Enable Throttling
  4. Выберите готовый пресет ограничения скорости или настройте параметры вручную
  5. Сохраните настройки
  6. Кликните Proxy > Start throttling
Как запустить троттлинг в Charles
Как запустить троттлинг в Charles

Ограничение скорости в настройках роутера

Решить проблему можно радикально — просто ограничить скорость соединения прямо на роутере. Такой способ подойдёт, если вы тестируете дома на реальном устройстве и у вас есть доступ к панели управления роутера. Также стоит иметь в виду, что наличие такой опции зависит от модели роутера.

Как ограничить скорость интернет-соединения на роутере:

  1. Зайдите в настройки роутера. Для этого в адресной строке браузера введите специальный URL или IP-адрес роутера в домашней сети (192.168.1.1 или 192.168.0.1)
  2. Введите логин и пароль. Они, а также URL для входа, могут быть указаны на самом роутере (обычно логин и пароль — это слово «admin»)
  3. Найдите в панели Bandwidth control / Контроль пропускной способности
Стандартная админ-панель
Стандартная админ-панель

Не забудьте снять ограничение по завершению тестирования :)

Есть множество способов протестировать приложение при низкой скорости интернета. На наш взгляд, самым удобным остаётся Network Link Conditioner. Но без него тоже можно обойтись.

  • Технологии