Upload
sqalab
View
182
Download
3
Embed Size (px)
Citation preview
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
1
О Себе
2
• Разработчик с 2006 • Тестировщик с 2007 • Менеджер с 2009 • Инженер 2006 - н.в.
!
!!
@PapaMinoshttp://test-failed.blogspot.com
2
Преамбула
3
При увеличении объема хранимых данных в 10 раз, систему хранения данных скорее всего придется пересмотреть
Олег Анастасьев
При увеличении количества выполняемых автотестов в 10 раз, систему обеспечивающую их выполнение придется пересмотреть
Кейс №1: Попадание на AntispamЦель: проверить что пользователь попадающий на цензор блокируется !
Шаги: Свежесозданным пользователем войти на портал Отправить нецензурное сообщение N пользователям Словить блокировку при попытке отправить сообщение в N+1 раз
4
Кейс №1: Попадание на Antispam
5
Кейс №2 Цель: проверить «тяжелые» данные на окружениях !
Предусловие: у пользователя есть видео, настройки доступа к нему и соц. граф. !
Шаги: Войти другом пользователя, проверить что контент доступен. Войти пользователем, закрыть доступ к контенту Для друзей контент доступен
6
Кейс №2: Окружения и данные
7
Кейс №3: Уникальное видео
Цель: проверить перекодирование видео !
Шаги: Пользователь загружает новое (уникальное) видео. Проверить что видео прошло обработку и воспроизводится. !
8
(промежуточный) Итог
9
(промежуточный) Итог
10
Монолитная архитектура
11
Микросервисы
• Никто не знает что такое микросервисы • Есть общие характеристики • Есть мнение что микросерсвисы это:
• «правильное SOA» • «лучшая часть SOA» • «SOA наизнанку»
12
Микросервисная архитектура
13
Характерные черты
• Выделение компонентов в сервисы • Организация вокруг нужд бизнеса (DDD) • Связи между узлами не имеют фукнционального значения
• Децентрализация управления и данных • Автоматизация развертывания • Эволюционный дизайн и дизайн «на отказ»
14
Микросервисы и автотесты
15
Что это нам дает
НадежностьСкорость
Трудные места
Удобство
Окружения16
Хранение контента
17
Хранение контента
18
Генерация контента
19
Сгенерированное видео
20
История про WebDriver Torso от Google
Преимущества• Весь контент в одном месте • Отдельно от кода • Можно генерировать • Сервис всегда можно сделать умнее
21
22
Storekeeper
Регистрация
23
Удаление
24
Что умеет• Регистрировать ботов • Отдавать ботов в тесты
• пол, возраст, прочее… • Удалять ботов • Разблокировать ботов
25
TDS в Spotify
Как это работает
26
storekeeper.deleteBot(bot)storekeeper.getBot()
Storekeeper: Результаты
• Ускорение тестов • Профит при увеличении числа
ботов • Запас ботов • Локальный запуск
27
28
Mnemonic
Окружения
29
Окружения (на самом деле)
30
Key
Prod value
Test value Stage value
Dev value
31
Key - Value
KEY
Bot 1 + State
Bot 2 + State
Bot 3 + State
Ботнеты
32
Ботнеты в природе
33
Ботнеты в природе
34
Как это работает
mnemonic.setMessage("key").setForCurrent(targetURL);
35
mnemonic.getMessage("key").getForCurrent(targetURL);
mnemonic.getStructMessage("key2").getForCurrent(targetURL);
Мир вокруг
36
Мир вокруг
37
Мир вокруг
38
Все вместе
HUB
NODE1 NODE 2 NODE 3 NODE 4
A A A A
39
Чтобы взлетело• Мониторинги • Логи • Healthcheck-и • Понимание взаимосвязей между сервисами
40
Мысль
41
measure performance before and after each attempted optimization.
Joshua Bloch, Effective Java
Выводы• Тестовый фреймворк - не свалка • Нет единого решения всех проблем • Делай одну простую вещь хорошо • Комбинируй простые вещи
42
Куда идти?
• Мартин Фаулер о микросервисах
• Selenium-Grid-Extras • Grible • Курсы от 10gen по
mongodb (бесплатные)
43
Цель. Элияху Голдратт
Спасибо! Никита Макаров Руководитель группы автоматизации тестирования, Одноклассники [email protected] !!
44
@PapaMinoshttp://test-failed.blogspot.com