codefest 2014. Макаров Н. — selenium grid. ok version

Post on 20-Oct-2014

679 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Selenium Grid. OK Version

�1

О себе

• В IT c 2006 • В автоматизации тестирования с 2007 • Руковожу автоматизацией с 2009 !

!

62

@PapaMinos

http://test-failed.blogspot.com

Selenium

�3

Selenium Grid

HUB

NODE1

NODE  3

NODE  N

NODE  4

NODE  2

�4

Что мы хотим от автотестов

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

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

Удобство

Окружения

�5

Скорость

�6

15  минут

Еще  про  графики

Как укладываться в 15 минут

�7

Масштабирование Grid

HUB

NODE1 NODE  2

HUB

NODE1 NODE  2 NODE  3 NODE  4

�8

Скриншоты Память  Трафик  Информативность

�9

Обычные команды Selenium

HUB

NODE1

NODE  3

NODE  N

NODE  4

NODE  2

±  1  Кб ±  1  Кб

�10

Скриншоты

HUB

NODE1

NODE  3

NODE  N

NODE  4

NODE  2

300-­‐700  Кб

1  Кб

�11

Информативность

�12

Правда жизни

�13

Как оно должно быть

• Стоять внутри ноды • Хранить все внутри • Доступно снаружи • Просто в обращении

�14

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

• Микро(!) - всего несколько функций

• Простой протокол для работы извне

• Простая и понятная цель • Сервис(!) - может быть недоступен

�15

https://github.com/egorzamaraev/sample-­‐jetty-­‐service

Сервис скриншотов

�16

Создание скриншота

�17

Транскодирование

�18

Скорость: Скриншоты

• Быстрые (1,5-2х) и компактные (5-10х) • Скриншоты хранятся на всей ферме • Самоочистка по квоте • Нативный скриншот

�19

+Агенты

HUB

NODE1 NODE  3 NODE  5 NODE  N    .  .  .      

NODE  4NODE  2

A A A A A A

�20

Надежность: Зависание нод

�21

Расширим агента

A172.6.3.23:4947

/Screenshot/Killer

�22

Решенные проблемы

Node  Agent

/screenshot

/killer

/cache

/distr

/hosts

A

�23

Как укладываться в 15 минут

�24

Как выглядят тесты

BEFORE  (30%)

TEST  (40%)

AFTER  (30%)

tt  Теста

�25

Как должны выглядеть тесты

TEST1 TEST2 TEST3

t

�26

Как бы это сделать…?

Статические  данные

?

BEFORE TEST AFTER

Делегирование

�27

Окружения

628

Колхозить if-ами

�29

if (env==PROD){ … } else if (env==TEST){ … } else if (env==STAGING){ … } else if (env==DEV) { … } else { … }

�30

Mnemonic

Key

Prod  value

Test  value  Stage  value

Dev  value

�31

Key - Value

KEY

Bot  1

Bot  2

Bot  3

Ботнеты

�32

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

�33

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

�34

Взаимодействие

TEST

API

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

�35

�36

Делегирование подготовки

�37

Storekeeper

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

TEST

API

sk.getBot()sk.deleteBot(bot)

�38

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

• Ускорение  тестов  • Профит  при  увеличении  числа  ботов  • Запас  ботов    • Локальный  запуск

�39

Было

HUB

NODE1 NODE  2 NODE  3 NODE  4

�40

Стало

HUB

NODE1 NODE  2 NODE  3 NODE  4

A A A A

�41

Правила для микросервисов

• Простой • Без состояния (если возможно) • Здоровый и наблюдаемый • Отключаемый

�42

Мысль

�43

measure performance before and after each attempted optimization. Joshua Bloch, Effective Java

Куда идти?

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

(бесплатные) • Мартин Фаулер о микросервисах • Про то как правильно готовить

Selenium-тесты: • внутренности WebDriver • ускорение тестов

�44

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

http://www.mongodb.org/

DropWizard  -­‐  http://dropwizard.codahale.com/  

 https://developers.google.com/speed/webp/      !

http://www.eclipse.org/jetty/  

http://www.quartz-­‐scheduler.org/  

Технологии

�45

Спасибо! Никита Макаров Руководитель группы автоматизации тестирования, Одноклассники nikita.makarov@odnoklassniki.ru !

!

�46

@PapaMinos

http://test-failed.blogspot.com

И, да…

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

http://v.ok.ru

647

top related