В этой статье покажем, как «испортить» интернет на тестовом устройстве без возни и проблем.
iOS
Для начала расскажем о тестировании iOS-приложений с использованием стандартной утилиты Network Link Conditioner. Она дает тестеру возможность настраивать интернет-соединение так, как ему необходимо.
Чтобы включить эту функцию на iPhone, вам также понадобится устройство на MacOS:
1) Cкачать и установить Xcode на Mac
2) Открыть Xcode на Mac
3) Подключить iPhone к Mac
4) Разрешить доступ Mac к iPhone
5) Открыть настройки на iPhone
6) Проскроллить вниз
7) Нажать «Developer»
8) Нажать «Network Link Conditioner»
9) Выбрать пресет сети или создать свой
10) Включить тоггл «Enable»
iOS дает нам возможность выбрать один из предустановленных пресетов качества соединения или же создать свой собственный пресет.
Для собственного пресета доступны следующие настройки:
Здесь мы видим, что 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.
- Делаем iPhone точкой доступа (Настройки > Режим Модема)
- Настраиваем соединение с помощью Network Link conditioner
- Подключаемся Android’ом к точке доступа
- Готово. Вы восхитительны :)
Использование облачных ферм
Сейчас для тестирования приложения на большом ассортименте новейших и не очень устройств совсем не обязательно иметь собственную ферму мобильных телефонов. Это к тому же ещё и неудобно — многие работают удалённо. Мы в Fora Soft всё чаще используем услуги облачных ферм устройств.
В некоторых таких фермах, например, Browserstack или LambdaTest, есть опция троттлинга сети — замедления соединения — при тестировании на мобильных устройствах.
Для использования троттлинга может понадобиться платная подписка. Например, в ферме 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 эмуляторе с ограниченным интернет-соединением?
- Установите Android Studio
- Создайте эмулятор с помощью Android Virtual Device Manager
- В настройках эмулятора при его создании или редактировании выберите тип сети:
- Нажмите Show advanced settings
- В разделе Network выберите Speed
- Запустите эмулятор
- Запустите приложение на эмуляторе
- Выключите Wi-Fi на эмуляторе, чтобы он использовал настройки именно мобильного соединения
Изменение типа сети в настройках телефона
Выбрать конкретный тип мобильной связи можно и на реальном Android или iOS устройстве. Для этого помимо девайса понадобится действующая SIM-карта с оплаченным интернетом.
Как переключиться на другую сеть на Android-устройстве:
- Откройте настройки / Settings
- Перейдите в “Сеть и интернет” / Network & Internet
- Перейдите в “Интернет” / Internet
- Откройте “Настройки SIM карты”
- Нажмите “Предпочтительный тип сети” / Preferred network type
Как переключиться на другую сеть на Android
Актуально для Android 12. Названия и расположение разделов могут отличаться в зависимости от версии ОС и модели девайса.
Как переключиться на другую сеть на iOS-устройстве:
- Откройте настройки / Settings
- Перейдите в Сотовая связь / Mobile Data
- Перейдите в Параметры / Mobile Data Options
- Нажмите Голос и Данные / Voice & Data
Как переключиться на другую сеть на iOS
Актуально для iOS 15.
Симуляция медленного соединения в инструменте для дебаггинга Charles
Если облачные фермы — это дорого, запуск эмулятора — это непросто, а SIM-карты с оплаченным интернетом под рукой нет, можно воспользоваться опцией троттлинга сети в приложении Charles.
Вообще вы можете использовать Charles, чтобы отслеживать трафик мобильных приложений во время функционального тестирования или дебаггинга. Но этот же инструмент можно использовать для тестирования при медленном соединении.
Как сымитировать медленное соединение с помощью Charles
- Настройте хост-машину с установленным Charles в качестве прокси для девайса / приложения, которое нужно протестировать. Подробнее об этом в документации Charles
- В Charles перейдите в Proxy > Throttle settings
- Кликните Enable Throttling
- Выберите пресет ограничения скорости или настройте его самостоятельно
- Сохраните настройки
- Кликните Proxy > Start throttling
Ограничение скорости в настройках роутера
Решить проблему можно и радикально — просто ограничить скорость соединения прямо на роутере. Такой способ подойдёт, если вы тестируете дома на реальном девайсе и у вас есть доступ в админ-панель своего роутера. Также стоит иметь ввиду, что наличие такой опции зависит от самого роутера.
Как ограничить скорость интернет-соединения на роутере:
- Зайдите в настройки роутера. Для этого введите в адресной строке браузера специальный URL или IP роутера в домашней сети (192.168.1.1 или 192.168.0.1)
- Введите логин и пароль. Они, а также URL для входа, могут быть написаны на самом роутере (обычно и логин, и пароль это слово “admin”)
- Найдите в панели Bandwidth control / Контроль пропускной способности
Не забудьте снять ограничение по окончанию тестирования :)
Есть множество способов протестировать приложение в условиях ограниченной скорости интернета. Самым удобным, на наш взгляд, все равно остается Network Link Conditioner. Но вполне можно обойтись и без него.
Комментарии