Upload
kuchinskaya
View
443
Download
3
Embed Size (px)
Citation preview
Selenium 2 в Mail.Ru Group
Дмитрий Зенович, руководитель тестирования,
Mail.Ru Group
Selenium – священная корова
Selenium – это:
Selenium IDE Selenium WebDriver Selenium Server, Selenium Grid
Selenium Grid 2
Selenium ноды + Selenium хаб
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
Многопоточность тестов
Одна нода на один браузер Одна нода на один поток тестов
Ресурсы
≈ 42 потока (42 ноды)
21 Гб !
1000 тестов ∗ ½ минуты ∗ 5 браузеров
60 минут
Небольшой проект:
Многопоточность и экономия ресурсов
Многопоточность на одной ноде
Что делать?
Selenium изнутри Java Core IEDriver (C++) OperaDriver (Java) FirefoxDriver (JS, C++) ChromeDriver (C++, ext) Bindings (Python, PHP, C#, Ruby, …)
Клики Ввод с клавиатуры Загрузка файлов findActiveElement
Однопоточные операции
Закрытие окна Открытие окна сlear() get(url)
Влияния
Java ReentrantReadWriteLock
Блокировки writeLock • findActiveElement • click • sendKey readLock • Открытие и закрытие окон • clear • get(URL)
Фокус окна Opera Driver (Java, JNI, WinAPI) • findActiveElement • click • sendKeysToElement IE Driver (C++, WinAPI) • click
Запуск c таймаутом (Java) Потоки ввода/вывода при закрытии браузера (Java) Изолированные сессии
Прочее
Стабильная многопоточность Небольшой проект (1000 тестов): 1 нода вместо 42-х 3 Гб вместо 21 Гб Экономия памяти: 7 раз!
невозможно сомнительно
неосуществимо
неправильно никто так не делает
Единственный в мире
cтабильный многопоточный Selenium
Дмитрий Зенович
р у к о в о д и т ел ь т е с т и р о в а н и я
d . z e n o v i c h @ c o r p . m a i l . r u