6. Сетевое тестирование в мобильных приложениях
🤔 Почему это важно?
Мобильные приложения работают в реальных условиях: медленный интернет, потери пакетов, таймауты, 4G вместо Wi-Fi. Если тестить только в идеальных условиях, пользователи словят баги, а ты – тикеты от саппорта.
🔍 Что может пойти не так?
🚨 Долгая загрузка контента → API не отвечает, приложение висит.
🚨 Потеря соединения → краши при переходе между экранами.
🚨 Ошибки при восстановлении соединения → пользователь думает, что его заказ не прошёл, но списание произошло.
📡 Виды сетевого тестирования
1 Проверка работы на разных типах соединений
✅ Wi-Fi (хороший интернет)
✅ 4G/5G (мобильные сети)
✅ 3G (медленный интернет, задержки)
✅ Нет связи (офлайн-режим)
✅ Плохое соединение (теряются пакеты, лаги)
📌 Как тестить?
- Включать/отключать Wi-Fi и мобильные данные.
- Использовать Network Link Conditioner (iOS) и Android Emulator Advanced Network Settings.
- Эмулировать плохой интернет через Charles Proxy / Fiddler.
2 Тестирование задержек и потерь пакетов
✅ Как ведёт себя приложение при задержке 500+ мс?
✅ Что происходит, если пакеты теряются?
✅ Как приложение восстанавливает соединение?
📌 Как тестить?
- Clumsy (Windows) – добавляет задержки, потери пакетов.
- Charles Proxy / Fiddler – можно вручную рвать соединение.
- tc (Linux/Mac) – эмуляция сетевых проблем в терминале:
3 Тестирование офлайн-режима
Если приложение не может подключиться к серверу, оно должно вести себя адекватно:
✅ Показывать закешированные данные.
✅ Не крашиться при попытке загрузить контент.
✅ Корректно синхронизироваться после восстановления сети.
📌 Как тестить?
- Отключать интернет и смотреть, как ведёт себя приложение.
- Логиниться, отправлять сообщения в офлайне.
- Проверять, что данные не теряются после возврата сети.
4 Тестирование безопасности сетевого соединения
✅ Шифруются ли запросы?
✅ Можно ли перехватить данные в публичной сети?
✅ Безопасно ли хранится токен авторизации?
📌 Как тестить?
- Charles Proxy / Burp Suite – подмена SSL-сертификатов.
- Проверять, передаётся ли пароль в открытом виде (спойлер: не должен).
- Анализировать заголовки CORS, HSTS, CSP.
5 Тестирование API и ошибок сети
Приложение должно адекватно реагировать на плохие ответы от сервера:
✅ 500 Internal Server Error – сервер упал, но UI не должен сдохнуть.
✅ 403 Forbidden – юзер не должен видеть чужие данные.
✅ 408 Request Timeout – таймаут не должен зависать бесконечно.
✅ 429 Too Many Requests – лимит запросов, приложение не должно спамить API.
📌 Как тестить?
- Postman / REST Assured / Requests (Python) – отправлять кривые запросы.
- Mock-серверы (WireMock, Postman Mock Server) – подставлять кастомные ответы.
- Charles Proxy – эмулировать ошибки API.
Пример теста API на Python:
🛠 Инструменты для сетевого тестирования
📌 Сетевое тестирование в CI/CD (GitLab)
Чтобы тестировать API в пайплайне, можно использовать pytest + Requests.
📌 .gitlab-ci.yml:
Теперь тесты будут автоматически проверять API на каждом коммите.
📌 Итоги
🔥 Сетевое тестирование важно, потому что реальный мир ≠ идеальные условия.
🚀 Нужно тестировать плохой интернет, потери пакетов, офлайн-режим.
🛠 Лучшие инструменты: Charles Proxy, Burp Suite, Clumsy, Postman, WireMock.
✅ API должны работать даже при лагучем интернете.