Почему тестирование сети важно для мобильных

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

Категории сетевых условий

УсловиеСкоростьЗадержкаРеальный сценарий
Нет сети0N/AРежим полёта, метро
2G (EDGE)50-200 Kbps300-1000мсСельская местность
3G0.5-5 Mbps100-500мсПригород
4G LTE5-50 Mbps30-100мсГород
5G50-1000+ Mbps1-10мсОтдельные городские районы
Медленный WiFi1-5 Mbps10-50мсКафе, отели, аэропорты

Инструменты троттлинга сети

Settings > Developer > Network Link Conditioner с предустановленными профилями.

Android

adb shell svc wifi disable
emulator -avd Pixel_8 -netdelay edge -netspeed edge

Charles Proxy

Работает с iOS и Android. Позволяет настраивать пропускную способность, задержку и стабильность.

Основные сценарии тестирования сети

1. Загрузка в медленной сети

  • Индикаторы загрузки появляются в течение 1 секунды
  • Контент загружается прогрессивно
  • Ошибки таймаута после разумного ожидания
  • Пользователь может отменить долгие операции

2. Потеря сети во время операции

  • Отправка формы → данные сохраняются, повтор при восстановлении
  • Загрузка файла → возобновление или перезапуск с обратной связью
  • Платёжная транзакция → корректная обработка, без двойных списаний
  • Отправка сообщения → сообщение в очереди

3. Переходы между сетями

  • WiFi на сотовую
  • Сотовая на WiFi
  • 4G на 3G на 2G
  • Сеть → нет сети → сеть

Продвинутые стратегии тестирования сети

Тестирование логики повторных попыток

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

Упражнение: План тестирования сети

Сценарий: Тестируйте мессенджер. Разработайте план покрывающий:

  1. Отправку сообщения на 2G
  2. Получение сообщений при переключении WiFi на сотовую
  3. Загрузку фото при 20% потере пакетов
  4. Поведение при ответе сервера 503
Решение
  1. Отправка на 2G: Charles Proxy на 50Kbps/500мс. Проверить: состояние «отправляется», переход к «отправлено», таймаут с повтором после 30с.

  2. Переход WiFi-сотовая: Начать на WiFi, переключиться. Проверить: нет потерянных сообщений, новые в течение 5с, автоматическое переподключение WebSocket.

  3. Загрузка с потерей пакетов: Charles с 20% отказов. Проверить: автоматический повтор, точная полоса прогресса, возможность отмены.

  4. Ответ 503: Charles возвращает 503. Проверить: сообщение «сервис недоступен», повтор с задержкой, предыдущие сообщения видны.

Советы из продакшен-опыта

Совет 1: Тестируйте первую загрузку на 3G. Если она занимает более 5 секунд — вы потеряете пользователей.

Совет 2: Создавайте пользовательские пресеты троттлинга и делитесь с командой.

Совет 3: Тестируйте второй по тяжести случай, а не самый тяжёлый. Самые коварные баги появляются при 80% потере пакетов, а не при полном отключении.

Ключевые выводы

  • Мобильные пользователи испытывают очень разные сетевые условия
  • Инструменты троттлинга необходимы для реалистичного тестирования
  • Тестируйте состояния загрузки, таймауты, логику повторов и переходы между сетями
  • Особое внимание к платежам, загрузке файлов и real-time функциям при сетевых проблемах