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

iOS

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

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

1) Cкачать и установить 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 с помощью стандартных средств оказалось невозможно. Следовательно, у меня было 2 пути: эмулировать медленное соединение с помощью устанавливаемых из Google Play приложений, или с помощью особой настройки точки доступа к интернету.

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

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

В студенчестве, когда мобильный интернет трафик быстро кончался (а нужно было почитать, посмотреть что-то на паре и т.д.), мы часто использовали 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
Как выбрать Speed в 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. Но вполне можно обойтись и без него.

  • Технологии