Successfully reported this slideshow.

CodeFest 2014. Макаров Н. — Selenium Grid. OK Version

1,398 views

Published on

Published in: Internet
  • Be the first to comment

CodeFest 2014. Макаров Н. — Selenium Grid. OK Version

  1. 1. Selenium Grid. OK Version 1
  2. 2. О себе • В IT c 2006 • В автоматизации тестирования с 2007 • Руковожу автоматизацией с 2009 ! ! 62 @PapaMinos http://test-failed.blogspot.com
  3. 3. Selenium 3
  4. 4. Selenium Grid HUB NODE1 NODE  3 NODE  N NODE  4 NODE  2 4
  5. 5. Что мы хотим от автотестов Надежность Скорость Трудные  места Удобство Окружения 5
  6. 6. Скорость 6 15  минут Еще  про  графики
  7. 7. Как укладываться в 15 минут 7
  8. 8. Масштабирование Grid HUB NODE1 NODE  2 HUB NODE1 NODE  2 NODE  3 NODE  4 8
  9. 9. Скриншоты Память   Трафик   Информативность 9
  10. 10. Обычные команды Selenium HUB NODE1 NODE  3 NODE  N NODE  4 NODE  2 ±  1  Кб ±  1  Кб 10
  11. 11. Скриншоты HUB NODE1 NODE  3 NODE  N NODE  4 NODE  2 300-­‐700  Кб 1  Кб 11
  12. 12. Информативность 12
  13. 13. Правда жизни 13
  14. 14. Как оно должно быть • Стоять внутри ноды • Хранить все внутри • Доступно снаружи • Просто в обращении 14
  15. 15. Микросервисы • Микро(!) - всего несколько функций • Простой протокол для работы извне • Простая и понятная цель • Сервис(!) - может быть недоступен 15 https://github.com/egorzamaraev/sample-­‐jetty-­‐service
  16. 16. Сервис скриншотов 16
  17. 17. Создание скриншота 17
  18. 18. Транскодирование 18
  19. 19. Скорость: Скриншоты • Быстрые (1,5-2х) и компактные (5-10х) • Скриншоты хранятся на всей ферме • Самоочистка по квоте • Нативный скриншот 19
  20. 20. +Агенты HUB NODE1 NODE  3 NODE  5 NODE  N    .  .  .       NODE  4NODE  2 A A A A A A 20
  21. 21. Надежность: Зависание нод 21
  22. 22. Расширим агента A 172.6.3.23:4947 /Screenshot /Killer 22
  23. 23. Решенные проблемы Node  Agent /screenshot /killer /cache /distr /hosts A 23
  24. 24. Как укладываться в 15 минут 24
  25. 25. Как выглядят тесты BEFORE   (30%) TEST   (40%) AFTER   (30%) t t  Теста 25
  26. 26. Как должны выглядеть тесты TEST1 TEST2 TEST3 t 26
  27. 27. Как бы это сделать…? Статические  данные ? BEFORE TEST AFTER Делегирование 27
  28. 28. Окружения 628
  29. 29. Колхозить if-ами 29 if (env==PROD){ … } else if (env==TEST){ … } else if (env==STAGING){ … } else if (env==DEV) { … } else { … }
  30. 30. 30 Mnemonic
  31. 31. Key Prod  value Test  value   Stage  value Dev  value 31 Key - Value
  32. 32. KEY Bot  1 Bot  2 Bot  3 Ботнеты 32
  33. 33. Ботнеты в природе 33
  34. 34. Ботнеты в природе 34
  35. 35. Взаимодействие TEST API mnemonic.getMessage("key").getForCurrent(); 35
  36. 36. 36 Делегирование подготовки
  37. 37. 37 Storekeeper
  38. 38. Как это работает TEST API sk.getBot() sk.deleteBot(bot) 38
  39. 39. Storekeeper: Результаты • Ускорение  тестов   • Профит  при  увеличении  числа  ботов   • Запас  ботов     • Локальный  запуск 39
  40. 40. Было HUB NODE1 NODE  2 NODE  3 NODE  4 40
  41. 41. Стало HUB NODE1 NODE  2 NODE  3 NODE  4 A A A A 41
  42. 42. Правила для микросервисов • Простой • Без состояния (если возможно) • Здоровый и наблюдаемый • Отключаемый 42
  43. 43. Мысль 43 measure performance before and after each attempted optimization. Joshua Bloch, Effective Java
  44. 44. Куда идти? • Selenium-Grid-Extras • Grible • Курсы от 10gen по mongodb (бесплатные) • Мартин Фаулер о микросервисах • Про то как правильно готовить Selenium-тесты: • внутренности WebDriver • ускорение тестов 44 Цель.  Элияху  Голдратт
  45. 45. 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
  46. 46. Спасибо! Никита Макаров 
 Руководитель группы автоматизации тестирования, Одноклассники nikita.makarov@odnoklassniki.ru ! ! 46 @PapaMinos http://test-failed.blogspot.com
  47. 47. И, да… есть  такая  работа  –  сидеть  в  «Одноклассниках»   ! http://v.ok.ru 647

×