Що таке Selenoid. Переваги використання

Що таке Selenoid?

Selenoid є наступником, альтернативною реалізацією Selenium Hub, який запускає браузери в контейнерах. Масштабований, незмінний, автономний Selenium-Grid на будь-якій платформі з одним двійковим файлом. Це потужна реалізація Golang оригінального коду концентратора Selenium. Він використовує Docker для запуску браузерів.

Selenoid – це альтернатива Selenium Server, хоч і суть її ідентична: організація взаємодії функціонування драйверів.

Базова мета Selenoid полягає в тому, щоб здійснювати запуск нових контейнерів для кожної сесії та завершувати його одразу після закінчення сесії. Даний продукт дозволяє підтримувати граничні навантаження без додаткових витрат ресурсів.

Дізнатись більше про роботу Selenoid, а також з нуля розгорнути автотести в Jenkins у зв'язці з Selenoid ти можеш на воркшопі How to Integrate Jenkins with Selenoid

copy_copy_obkladynka_facebook-podii_1920x1080_piks_1.300x0.jpeg.pagespeed.ce.2fFXbGa40P.jpg

Як працює Selenoid?

Він повністю сумісний із Selenium Server. Тестувальнику не потрібно змінювати жодного рядка коду у своїх автотестах. Він пише адресу хоста та запускає автотести.

Далі Selenoid автоматично запускає необхідні браузери у контейнерах. Якщо в Capabilities поставили Chrome 56 версії, то він сам знайде образ 56 версії, запустить його в контейнері і прожене там автотести.

Якщо в процесі щось зависло, скажімо, в браузері, в додатку, і в результаті браузер не закрився автоматично, то він за замовчуванням через хвилину сам зупинить браузер з контейнером. Це дуже зручно, не треба думати про браузери, що зависли.

У контейнері міститься WebDriver, браузер потрібний для цієї версії WebDriver, а також шрифти, підтримка шрифтів інших мов – можна і китайську тестувати, і хінді – є все необхідне, у тому числі і flash.

Переваги використання Selenoid:

  • Selenoid набагато простіше і швидше встановлюється, ніж Selenium Server.
  • Зручніше управління браузерами.
  • Легке масштабування кількості паралельних автотестів. Браузери працюють у контейнерах, тому треба дбати лише про достатню обчислювальну потужність
  • Має дуже зручний UI та логування.
  • Має додаткові фішки, наприклад черги. Якщо на хост прийшло дуже багато автотестів одночасно, і хост не може їх переробити, то Selenoid ставить їх у чергу. І їх пропускатиме по черзі, як тільки якісь тести вже завершаться.
  • Також Selenoid має набагато більш розвинений функціонал контролю та споживання ресурсів та є обмеження кількості на хост. Можна окремо для кожного контейнера встановлювати ліміти на CPU та RAM. Якщо є ненажерлива програма, де JavaScript споживає дуже багато ресурсів, можна для стабілізації обмежити споживання цих ресурсів контейнером. Це дуже зручно у виробництві.

Але це ще не все. Є ще додаткові переваги:

  • Можна змінювати конфігурації Selenoid "на ходу". Не потрібно для цього зупиняти хости з Selenoid, просто виправити JSON і там спеціальною командою Selenoid перезапускається, і не перериваючи активних сесій, він вже готовий поставляти на запит нові необхідні браузери.
  • За замовчуванням використовуються образи розробників Selenoid, але можна використовувати готові образи. Є офіційні образи від Selenium із браузерами. Або можливо створити свій образ, якщо за політика безпеки не дозволяє лізти в загальнодоступні репозиторії. Всередині образу має бути браузер із WebDriver, встановлений X-сервер, щоб браузер при запуску думав, що він запущений на реальному екрані.
  • Підтримка централізованого логування. Selenoid дозволяє не просто дивитись окремі логи браузера, а має спеціальну адресу в рядку. Якщо туди звертатися, то він повертає JSON із подібною статистикою того, що зараз відбувається на хості. Це дуже зручно застосовувати для живого аналізу того, що відбувається. Можна під'єднати graphite, Grafana. І дуже легко отримувати статистику і виводити на великих екранах, показувати поточну ситуацію. Наприклад, відстежувати перезавантаження якогось хоста чи якісь аномалії.
  • Дуже зручна штука – це завдання дозволу екрана прямо через код автотестів, тобто не дозвіл самого браузера, з яким він відкриється, а саме екрана, щоб тестувати навіть мобільні пристрої. А саме, коли робити вузький екран, емулювати екран мобільного телефону, теж можна запускати і додатково перевіряти тести.
  • І нова фіча, яка з'явилася нещодавно. Це вбудований відеозапис тестів, тобто підвантажується спеціальний контейнер за умовчанням, який в одне місце складає відеозапис проходження автотестів.

Але потрібно розуміти, що це дуже вантажить хост і потрібно використовувати тільки в режимах налагодження, тому що за замовчуванням Selenoid запускається без підтримки VNC і відеозапису, щоб максимально утилізувати доступні ресурси для стабільнішого запуску автотестів і проходження.

Дізнатись більше про роботу Selenoid, а також з нуля розгорнути автотести в Jenkins у зв'язці з Selenoid ти можеш на воркшопі How to Integrate Jenkins with Selenoid

copy_copy_obkladynka_facebook-podii_1920x1080_piks_1.300x0.jpeg.pagespeed.ce.2fFXbGa40P.jpg

Курси та події

Публікації

Відео