SlideShare uma empresa Scribd logo
1 de 45
Микросервисы для
автоматизации тестирования -
опыт "Одноклассников"
1
О Себе
• Разработчик с 2006
• Тестировщик с 2007
• Менеджер с 2009
• Инженер 2006 - н.в.
@PapaMinos
http://test-failed.blogspot.com
Преамбула
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
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
Чтобы взлетело
• Мониторинги
• Логи
• Healthcheck-и
• Понимание взаимосвязей между сервисами
39
Все вместе
HUB
NODE1 NODE 2 NODE 3 NODE 4
40
Выводы
• Тестовый фреймворк - не свалка
• Нет единого решения всех проблем
• Делай одну простую вещь хорошо
• Комбинируй простые вещи
41
Мысль
42
measure performance before and after
each attempted optimization.
Joshua Bloch, Effective Java
Куда идти?
• Мартин Фаулер о
микросервисах
• Selenium-Grid-Extras
• Grible
• Курсы от 10gen по
mongodb (бесплатные)
43
Цель. Элияху Голдратт
Спасибо!
Никита Макаров
Руководитель группы автоматизации тестирования,
Одноклассники
nikita.makarov@odnoklassniki.ru
44
@PapaMinos
http://test-failed.blogspot.com
И, да…
есть такая работа – сидеть в
«Одноклассниках»
http://v.ok.ru
45

Mais conteúdo relacionado

Mais procurados

Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Nikita Makarov
 
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
Rina Uzhevko
 

Mais procurados (20)

Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестирование
 
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
 
Watson
WatsonWatson
Watson
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Работа над ошибками
Работа над ошибкамиРабота над ошибками
Работа над ошибками
 
Урок 7. Сайты отзывов
Урок 7. Сайты отзывовУрок 7. Сайты отзывов
Урок 7. Сайты отзывов
 
FitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsFitNesse+PowerSlim on Windows
FitNesse+PowerSlim on Windows
 
Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4
 
Тестируем legacy c++
Тестируем legacy c++Тестируем legacy c++
Тестируем legacy c++
 
Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы
 
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
 
5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложения5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложения
 
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
 
Иван Гришаев «Тонкости тестирования» (Python Meetup)
Иван Гришаев  «Тонкости тестирования» (Python Meetup)Иван Гришаев  «Тонкости тестирования» (Python Meetup)
Иван Гришаев «Тонкости тестирования» (Python Meetup)
 
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
Тестируем с пользователями. Школа результативного выживания. (анонс доклада)
 
Отказоустойчивость веб-проекта: мониторинг, резервирование, обслуживание
Отказоустойчивость веб-проекта: мониторинг, резервирование, обслуживаниеОтказоустойчивость веб-проекта: мониторинг, резервирование, обслуживание
Отказоустойчивость веб-проекта: мониторинг, резервирование, обслуживание
 
В поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UIВ поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UI
 
Microservices for test automation
Microservices for test automationMicroservices for test automation
Microservices for test automation
 
Internet explorer e9 beta rus
Internet explorer e9 beta rusInternet explorer e9 beta rus
Internet explorer e9 beta rus
 
QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration
QA Fest 2019. Евгений Толчинский. Injections - 4 ways of PenetrationQA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration
QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration
 

Semelhante a Microservices for test automation - OK.RU expirience

“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
Igor Khrol
 

Semelhante a Microservices for test automation - OK.RU expirience (20)

Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
TestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщикаTestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщика
 
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
 
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!
 
Image-based automation
Image-based automationImage-based automation
Image-based automation
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
 
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)
 
Вирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииВирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестировании
 
Black box testing
Black box testingBlack box testing
Black box testing
 
Автоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знанийАвтоматизация тестирования как способ получения знаний
Автоматизация тестирования как способ получения знаний
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
лившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование мифлившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование миф
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 

Mais de Nikita Makarov (6)

Pandoras white box
Pandoras white boxPandoras white box
Pandoras white box
 
Cloud api
Cloud apiCloud api
Cloud api
 
тестирование распределенных систем
тестирование распределенных системтестирование распределенных систем
тестирование распределенных систем
 
Selenium grid. OK version
Selenium grid. OK versionSelenium grid. OK version
Selenium grid. OK version
 
Watson: Rethinking Test Reports. Selenium Camp 2014
Watson: Rethinking Test Reports. Selenium Camp 2014Watson: Rethinking Test Reports. Selenium Camp 2014
Watson: Rethinking Test Reports. Selenium Camp 2014
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 

Microservices for test automation - OK.RU expirience

Notas do Editor

  1. ]
  2. ]