45
Микросервисы для автоматизации тестирования - опыт "Одноклассников" 1

Микросервисы для автоматизации тестирования - опыт "Одноклассников"

  • Upload
    sqalab

  • View
    182

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Микросервисы для автоматизации тестирования - опыт "Одноклассников"

1

Page 2: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

О Себе

2

• Разработчик с 2006 • Тестировщик с 2007 • Менеджер с 2009 • Инженер 2006 - н.в.

!

!!

@PapaMinoshttp://test-failed.blogspot.com

2

Page 3: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Преамбула

3

При  увеличении  объема  хранимых  данных  в  10  раз,    систему  хранения  данных  скорее  всего  придется  пересмотреть

Олег  Анастасьев

При  увеличении  количества  выполняемых  автотестов  в  10  раз,    систему  обеспечивающую  их  выполнение  придется  пересмотреть  

Page 4: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Кейс №1: Попадание на AntispamЦель: проверить что пользователь попадающий на цензор блокируется !

Шаги: Свежесозданным пользователем войти на портал Отправить нецензурное сообщение N пользователям Словить блокировку при попытке отправить сообщение в N+1 раз

4

Page 5: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Кейс №1: Попадание на Antispam

5

Page 6: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Кейс №2 Цель: проверить «тяжелые» данные на окружениях !

Предусловие: у пользователя есть видео, настройки доступа к нему и соц. граф. !

Шаги: Войти другом пользователя, проверить что контент доступен. Войти пользователем, закрыть доступ к контенту Для друзей контент доступен

6

Page 7: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Кейс №2: Окружения и данные

7

Page 8: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Кейс №3: Уникальное видео

Цель: проверить перекодирование видео !

Шаги: Пользователь загружает новое (уникальное) видео. Проверить что видео прошло обработку и воспроизводится. !

8

Page 9: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

(промежуточный) Итог

9

Page 10: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

(промежуточный) Итог

10

Page 11: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Монолитная архитектура

11

Page 12: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Микросервисы

• Никто не знает что такое микросервисы • Есть общие характеристики • Есть мнение что микросерсвисы это:

• «правильное SOA» • «лучшая часть SOA» • «SOA наизнанку»

12

Page 13: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Микросервисная архитектура

13

Page 14: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Характерные черты

• Выделение компонентов в сервисы • Организация вокруг нужд бизнеса (DDD) • Связи между узлами не имеют фукнционального значения

• Децентрализация управления и данных • Автоматизация развертывания • Эволюционный дизайн и дизайн «на отказ»

14

Page 15: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Микросервисы и автотесты

15

Page 16: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Что это нам дает

НадежностьСкорость

Трудные  места

Удобство

Окружения16

Page 17: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Хранение контента

17

Page 18: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Хранение контента

18

Page 19: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Генерация контента

19

Page 20: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Сгенерированное видео

20

История  про  WebDriver  Torso  от  Google  

Page 21: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Преимущества• Весь контент в одном месте • Отдельно от кода • Можно генерировать • Сервис всегда можно сделать умнее

21

Page 22: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

22

Storekeeper

Page 23: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Регистрация

23

Page 24: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Удаление

24

Page 25: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Что умеет• Регистрировать ботов • Отдавать ботов в тесты

• пол, возраст, прочее… • Удалять ботов • Разблокировать ботов

25

TDS  в  Spotify

Page 26: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Как это работает

26

storekeeper.deleteBot(bot)storekeeper.getBot()

Page 27: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Storekeeper: Результаты

• Ускорение  тестов  • Профит  при  увеличении  числа  

ботов  • Запас  ботов    • Локальный  запуск

27

Page 28: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

28

Mnemonic

Page 29: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Окружения

29

Page 30: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Окружения (на самом деле)

30

Page 31: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Key

Prod  value

Test  value  Stage  value

Dev  value

31

Key - Value

Page 32: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

KEY

Bot  1  +  State

Bot  2  +  State

Bot  3  +  State

Ботнеты

32

Page 33: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Ботнеты в природе

33

Page 34: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Ботнеты в природе

34

Page 35: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Как это работает

mnemonic.setMessage("key").setForCurrent(targetURL);

35

mnemonic.getMessage("key").getForCurrent(targetURL);

mnemonic.getStructMessage("key2").getForCurrent(targetURL);

Page 36: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Мир вокруг

36

Page 37: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Мир вокруг

37

Page 38: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Мир вокруг

38

Page 39: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Все вместе

HUB

NODE1 NODE  2 NODE  3 NODE  4

A A A A

39

Page 40: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Чтобы взлетело• Мониторинги • Логи • Healthcheck-и • Понимание взаимосвязей между сервисами

40

Page 41: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Мысль

41

measure performance before and after each attempted optimization.

Joshua Bloch, Effective Java

Page 42: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Выводы• Тестовый фреймворк - не свалка • Нет единого решения всех проблем • Делай одну простую вещь хорошо • Комбинируй простые вещи

42

Page 43: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Куда идти?

• Мартин Фаулер о микросервисах

• Selenium-Grid-Extras • Grible • Курсы от 10gen по

mongodb (бесплатные)

43

Цель.  Элияху  Голдратт

Page 44: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

Спасибо! Никита Макаров Руководитель группы автоматизации тестирования, Одноклассники [email protected] !!

44

@PapaMinoshttp://test-failed.blogspot.com

Page 45: Микросервисы для автоматизации тестирования - опыт "Одноклассников"

И, да…

есть  такая  работа  –  сидеть  в  «Одноклассниках»  !

http://v.ok.ru

45