Upload
it-people
View
142
Download
5
Embed Size (px)
Citation preview
Правильно тестируем сетевую частьмобильного приложенияУсов Андрей
О себе• Тестирование бекендов
• Интеграционное тестирование клиент-сервер
3
Доставкаданных
Покрытие
• 9 стран, 288 городов
• Больше 3 миллионов пользователей
• iOS, Windows Phone, Android (beta)
5
Нагрузка
• 16 серверов
• Пиковый трафик 4Gbps
• Около 512Tb в месяц данных
6
Критичность
• Актуальность данных
• Обязательства перед рекламодателями
• Новые важные фичи
7
Задача
Опасности
Проблемы в сети• Медленный интернет
• Бетонные стены
• Ошибки на уровне DNS
11
Мобильный интернет• Лимит трафика
• Роуминг
12
Проблемы сервера• Пожар в дата-центре
• Перегрузки
• Толстые соседи
13
Посредники
• Блокировщики рекламы
• Подмена трафика
• Встроенная реклама
• Сообщения от провайдера
• Местные законы
14
Проблемы
Тест-дизайн
• Выбор конфигураций
• Расстановка приоритетов
• Оценка рисков
16
Окружение
• Настройка инфраструктуры
• Сложные бекенды
• Медленная и кривая настройка руками
17
Решение
Команда
Первые шаги• Придумываем тесты (авторизация, обновления, публикация)
• Изучаем пользователей (как, где, когда)
• Готовим мобильное приложение
20
А что дальше?
Находим бекендера
Готовим инфраструктуру
Определяем конфигурации сети• Внутреннее устройство бекендов
• Общая логика взаимодействия
24
Примеры: Устройство бекендов• Сервер отвечает кодами
• 502 Bad Gateway
• 504 Gateway Timeout
• Выключен Nginx
25
Примеры: Устройство приложения• Сервер отвечает кодами
• 503 Service Unavailable
• 404 Not Found
• Неизвестное имя хоста
26
Примеры: Общее изучение сети• Сервер не найден
• Обрыв закачки
• Низкая скорость
27
Примеры: Опыт• Редиректы
• Невалидный контент
28
Конфигурируем
• Правим конфигурации серверов
• Запускаем программы
• Фаервол
• Шейпер
29
Уже можнотестировать
Как?
• Садитесь вместе с бекендром
• Для каждого кейса вручную меняете конфигурацию
Долго, дорого, ненадежно
31
Автоматизация
Системы управления конфигруациями
Бекендер
• Пишет сценарии
• Учит вас этим пользоваться
Бекендер больше не нужен
34
Best practice• Следите за обратимостью каждого действия
• Имеем дефолтный экземпляр каждого файла
• iptables -F
• Имейте скрипт для возврата сервера в исходное состояние
• Реализуйте мониторинг состояния
35
Сложности
• Терминал Linux
• Много деталей для запоминания
• Однотипные долгие действия
36
Делаеминтерфейс
Скриншот Jenkins
Плагины
• Active Choices Plug-in
• description setter plugin
• Publish Over SSH
• Hidden Parameter plugin
40
Шаг первый: Выбираем бекенды ваш_бекенд_1
ваш_бекенд_2
сторонний_бекенд_1
сторонний_бекенд_2
Шаг второй: Выбираем действие Дефолтное состояние
Код ответа
Выключить сервер
Снизить скорость
Шаг третий: Указываем значения 404 — код ответа для данных
ничего не трогаем — для авторизации
502 — для изображений
Шаг четвёртый: СобираемВот и всё
44
Плюсы Jenkins• Графический интерфейс
• Кроссплатформенность
• Очереди
• Плагины
45
Минусы Jenkins• Плохая отзывчивость интерфейса
• Высокий порог входа
46
Теперь
• Заходим в Jenkins
• Тестируем
47
Результаты
Тестирование
• Быстрое
• Легкое
• Надежное
49
Система тестирования• Проста в поддержке
• Масштабируема
50
Анализ мобильных платформ• Android хорошо
• Windows Phone нормально
• iOS сложно
51
Подведем итог
Итоги
• Пользователи — это не только ваши коллеги
• Интернет имеет локальные особенности
• Проверяем на всех платформах
53