22
Selenium 2 в Mail.Ru Group Дмитрий Зенович, руководитель тестирования, Mail.Ru Group

Zenovich

Embed Size (px)

Citation preview

Page 1: Zenovich

Selenium 2 в Mail.Ru Group

Дмитрий Зенович, руководитель тестирования,

Mail.Ru Group

Page 2: Zenovich

Selenium – священная корова

Page 3: Zenovich

Selenium – это:

Selenium IDE Selenium WebDriver Selenium Server, Selenium Grid

Page 4: Zenovich

Selenium Grid 2

Selenium ноды + Selenium хаб

Page 5: Zenovich

Jenkins

Job 1

Thread 1

… Thread 2

Thread N

Job M

Thread 1

… Thread 2

Thread N

Node 1

XEN

Node K

Node 1

XEN

Node K

Selenium Hub

Page 6: Zenovich

Многопоточность тестов

Одна нода на один браузер Одна нода на один поток тестов

Page 7: Zenovich

Ресурсы

≈ 42 потока (42 ноды)

21 Гб !

1000 тестов ∗ ½ минуты ∗ 5 браузеров

60 минут

Небольшой проект:

Page 8: Zenovich
Page 9: Zenovich

Многопоточность и экономия ресурсов

Page 10: Zenovich

Многопоточность на одной ноде

Page 11: Zenovich

Что делать?

Page 12: Zenovich

Selenium изнутри Java Core IEDriver (C++) OperaDriver (Java) FirefoxDriver (JS, C++) ChromeDriver (C++, ext) Bindings (Python, PHP, C#, Ruby, …)

Page 13: Zenovich

Клики Ввод с клавиатуры Загрузка файлов findActiveElement

Однопоточные операции

Page 14: Zenovich

Закрытие окна Открытие окна сlear() get(url)

Влияния

Page 15: Zenovich

Java ReentrantReadWriteLock

Page 16: Zenovich

Блокировки writeLock • findActiveElement • click • sendKey readLock • Открытие и закрытие окон • clear • get(URL)

Page 17: Zenovich

Фокус окна Opera Driver (Java, JNI, WinAPI) • findActiveElement • click • sendKeysToElement IE Driver (C++, WinAPI) • click

Page 18: Zenovich

Запуск c таймаутом (Java) Потоки ввода/вывода при закрытии браузера (Java) Изолированные сессии

Прочее

Page 19: Zenovich

Стабильная многопоточность Небольшой проект (1000 тестов): 1 нода вместо 42-х 3 Гб вместо 21 Гб Экономия памяти: 7 раз!

Page 20: Zenovich

невозможно сомнительно

неосуществимо

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

Page 21: Zenovich

Единственный в мире

cтабильный многопоточный Selenium

Page 22: Zenovich

Дмитрий Зенович

р у к о в о д и т ел ь т е с т и р о в а н и я

d . z e n o v i c h @ c o r p . m a i l . r u