Правильно тестируем сетевую часть мобильного...
TRANSCRIPT
![Page 1: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/1.jpg)
![Page 2: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/2.jpg)
Правильно тестируем сетевую частьмобильного приложенияУсов Андрей
![Page 3: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/3.jpg)
О себе• Тестирование бекендов
• Интеграционное тестирование клиент-сервер
3
![Page 4: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/4.jpg)
Доставкаданных
![Page 5: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/5.jpg)
Покрытие
• 9 стран, 288 городов
• Больше 3 миллионов пользователей
• iOS, Windows Phone, Android (beta)
5
![Page 6: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/6.jpg)
Нагрузка
• 16 серверов
• Пиковый трафик 4Gbps
• Около 512Tb в месяц данных
6
![Page 7: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/7.jpg)
Критичность
• Актуальность данных
• Обязательства перед рекламодателями
• Новые важные фичи
7
![Page 8: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/8.jpg)
Задача
![Page 9: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/9.jpg)
![Page 10: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/10.jpg)
Опасности
![Page 11: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/11.jpg)
Проблемы в сети• Медленный интернет
• Бетонные стены
• Ошибки на уровне DNS
11
![Page 12: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/12.jpg)
Мобильный интернет• Лимит трафика
• Роуминг
12
![Page 13: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/13.jpg)
Проблемы сервера• Пожар в дата-центре
• Перегрузки
• Толстые соседи
13
![Page 14: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/14.jpg)
Посредники
• Блокировщики рекламы
• Подмена трафика
• Встроенная реклама
• Сообщения от провайдера
• Местные законы
14
![Page 15: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/15.jpg)
Проблемы
![Page 16: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/16.jpg)
Тест-дизайн
• Выбор конфигураций
• Расстановка приоритетов
• Оценка рисков
16
![Page 17: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/17.jpg)
Окружение
• Настройка инфраструктуры
• Сложные бекенды
• Медленная и кривая настройка руками
17
![Page 18: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/18.jpg)
Решение
![Page 19: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/19.jpg)
Команда
![Page 20: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/20.jpg)
Первые шаги• Придумываем тесты (авторизация, обновления, публикация)
• Изучаем пользователей (как, где, когда)
• Готовим мобильное приложение
20
![Page 21: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/21.jpg)
А что дальше?
![Page 22: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/22.jpg)
Находим бекендера
![Page 23: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/23.jpg)
Готовим инфраструктуру
![Page 24: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/24.jpg)
Определяем конфигурации сети• Внутреннее устройство бекендов
• Общая логика взаимодействия
24
![Page 25: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/25.jpg)
Примеры: Устройство бекендов• Сервер отвечает кодами
• 502 Bad Gateway
• 504 Gateway Timeout
• Выключен Nginx
25
![Page 26: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/26.jpg)
Примеры: Устройство приложения• Сервер отвечает кодами
• 503 Service Unavailable
• 404 Not Found
• Неизвестное имя хоста
26
![Page 27: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/27.jpg)
Примеры: Общее изучение сети• Сервер не найден
• Обрыв закачки
• Низкая скорость
27
![Page 28: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/28.jpg)
Примеры: Опыт• Редиректы
• Невалидный контент
28
![Page 29: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/29.jpg)
Конфигурируем
• Правим конфигурации серверов
• Запускаем программы
• Фаервол
• Шейпер
29
![Page 30: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/30.jpg)
Уже можнотестировать
![Page 31: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/31.jpg)
Как?
• Садитесь вместе с бекендром
• Для каждого кейса вручную меняете конфигурацию
Долго, дорого, ненадежно
31
![Page 32: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/32.jpg)
Автоматизация
![Page 33: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/33.jpg)
Системы управления конфигруациями
![Page 34: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/34.jpg)
Бекендер
• Пишет сценарии
• Учит вас этим пользоваться
Бекендер больше не нужен
34
![Page 35: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/35.jpg)
Best practice• Следите за обратимостью каждого действия
• Имеем дефолтный экземпляр каждого файла
• iptables -F
• Имейте скрипт для возврата сервера в исходное состояние
• Реализуйте мониторинг состояния
35
![Page 36: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/36.jpg)
Сложности
• Терминал Linux
• Много деталей для запоминания
• Однотипные долгие действия
36
![Page 37: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/37.jpg)
Делаеминтерфейс
![Page 38: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/38.jpg)
![Page 39: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/39.jpg)
Скриншот Jenkins
![Page 40: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/40.jpg)
Плагины
• Active Choices Plug-in
• description setter plugin
• Publish Over SSH
• Hidden Parameter plugin
40
![Page 41: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/41.jpg)
Шаг первый: Выбираем бекенды ваш_бекенд_1
ваш_бекенд_2
сторонний_бекенд_1
сторонний_бекенд_2
![Page 42: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/42.jpg)
Шаг второй: Выбираем действие Дефолтное состояние
Код ответа
Выключить сервер
Снизить скорость
![Page 43: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/43.jpg)
Шаг третий: Указываем значения 404 — код ответа для данных
ничего не трогаем — для авторизации
502 — для изображений
![Page 44: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/44.jpg)
Шаг четвёртый: СобираемВот и всё
44
![Page 45: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/45.jpg)
Плюсы Jenkins• Графический интерфейс
• Кроссплатформенность
• Очереди
• Плагины
45
![Page 46: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/46.jpg)
Минусы Jenkins• Плохая отзывчивость интерфейса
• Высокий порог входа
46
![Page 47: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/47.jpg)
Теперь
• Заходим в Jenkins
• Тестируем
47
![Page 48: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/48.jpg)
Результаты
![Page 49: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/49.jpg)
Тестирование
• Быстрое
• Легкое
• Надежное
49
![Page 50: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/50.jpg)
Система тестирования• Проста в поддержке
• Масштабируема
50
![Page 51: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/51.jpg)
Анализ мобильных платформ• Android хорошо
• Windows Phone нормально
• iOS сложно
51
![Page 52: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/52.jpg)
Подведем итог
![Page 53: Правильно тестируем сетевую часть мобильного приложения, Андрей Усов, 2ГИС, Москва](https://reader034.vdocuments.pub/reader034/viewer/2022042619/587fffd01a28ab3a1e8b7265/html5/thumbnails/53.jpg)
Итоги
• Пользователи — это не только ваши коллеги
• Интернет имеет локальные особенности
• Проверяем на всех платформах
53