Selenium — це масштабний open source проект, а точніше сказати browser automation framework, у межах якого розробляється серія програмних продуктів для автоматизованого тестування, зазвичай використовуються для тестування веб-додатків. Посилання на офіційне джерело і документацію => https://www.seleniumhq.org/

«Selenium Core», ядро проекту або «Selenium 1.0» в основі було зароджене з бібліотеки на JavaScript «JavaScriptTestRunner», яка була створена в 2004 році Джейсоном Хаггінсом у компанії ThoughtWorks, і призначалася для запуску тестів у браузері до сайту на Python. Згодом до розвитку проекту приєдналися інші співробітники. А з 2007 -го Хаггінс з колегами працювали над Selenium вже у Google. Вийшло кілька версій, зокрема довгождана версія Selenium 3.0, окреслено якими користувачі побачать Selenium 4.0, Selenium 5.0 Завдяки їх праці на сьогодні Selenium — складається із багатьох бібліотек написаних на різних мовах програмування (хоча в основному на кросплатформенній Java). 

До програмних продуктів Selenium входять :

  • Selenium WebDriver
  • Selenium Server+Selenium Grid
  • Selenium IDE
  • Selenium RC (закрили у версії Selenium 3.0)

Будь-який із цих п’яти продуктів, часто люблять іменувати просто одним словом Selenium. З контексту зрозуміло про який саме з них йде мова — одначе погодьтеся, то є трішки неправильно. Окрім того у всіх на слуху Selenium WebDriver, щось чули про Selenium IDE і наприклад я довго нічого не знала про Selenium RC, Selenium Server, Selenium Grid. Розпочинаємо роз’яснення…

Що таке Selenium WebDriver?

Ось, дану опцію, сподіваюся пояснити доволі просто. За своєю суттю Selenium WebDriver представляє собою програму «домовика», яка дозволяє запускати програми, які керують поведінкою браузера. Браузер сам відкривається, можна з певними таймаутами, відбуваються кліки, переходи по сторінках, закривається тощо. 

Більш детальніше розбираємо у наступному дописі:

Що таке Selenium RC?

Selenium RC Selenium Remote Control — з абревіатури зрозуміло, що це теж засіб для віддаленого управління браузером. Це попередня версія бібліотеки для керування браузерами. З функціональної точки зору значно поступається WebDriver. Selenium WebDriver запускається на рівні Операційної Системи. Selenium RC — по своїй суті був десктопним додатком, який ін’єктував у браузер шматки JavaScript коду для маніпуляції браузером користувача. Для розвитку і кращого розуміння, кому це потрібно, на Guru99 зберігся допис, де роз’яснювалися детально відмінності у архітектурі і принципі взаємодії тестових скриптів з браузером між Selenium RC і Selenium WebDriver.

Отже, в основі Selenium RC були закладені були зовсім інші підходи, аніж у Selenium WebDriver, тому проект доволі довго не закривався остаточно, а знаходився у законсервованому стані, про всяк випадок.

Всім, хто стикався з обмеженнями Selenium RC, пропонувалося переходити на використання WebDriver. І ось на різдво 2016 -го з релізом Selenium 3.0 Selenium RC оголосили остаточно офіційно мертвим проектом, як сліпу гілку в еволюції.

Що таке Selenium IDE?

Selenium IDE — початково був плагіном суто до браузера Firefox. Потім проект теж пережив період «консервування». І ось на початку серпня 2018 -го надійшла офіційна інформація про новий реліз і багатообіцяючі можливості цього браузерного плагіна розширення.

Посилання на офіційну документацію і завантажити Selenium IDE …тутка

Selenium IDE може записувати дії користувача, відтворювати їх, а також генерувати код для Selenium WebDriver, у якому виконуються ті ж дії. Тобто іншими словами Selenium IDE є Selenium рекордером. Але не звичайний рекордер, рекордер код якого можна редагувати, рекордер з дебагером, з підтримкою Embedded коду.

Ще краще, що Selenium IDE може запускати свої тести на серверах Selenium WebDriver. Це можна зробити за допомогою test runner у командному рядку Selenium IDE, який називається SIDE Runner.

Щоб дізнатися більше про усі можливості Selenium IDE, читайте статтю на DZone:

16 Reasons to Use Selenium IDE in 2019 (and 2 Reasons Not To)

Тестувальники, які не вміють (або просто не хочуть) програмувати, бо на даний момент їм так простіше жити, можуть використати Selenium IDE як самостійний продукт, якого цілком вистачає для найпростіших лінійних сценаріїв.

Що таке Selenium Server?

Selenium Server — це сервер, який дозволяє керувати браузером з віддаленої машини, по мережі. Але що робити, коли потрібно запустити тести на браузерах, недоступних на Вашій локальній машині?

Спочатку на тій машині, де повинен працювати браузер, встановлюється і запускається сервер. Потім на іншій машині (технічно можна і на тій самій, звичайно) запускається програма, яка використовує спеціальний драйвер RemoteWebDriver, з’єднується з сервером і відправляє йому команди. Сервер у свою чергу запускає браузер і виконує у ньому ці команди, використовуючи драйвер, що відповідає цьому браузеру:

Selenium Grid має топологію «зірка», тобто в його складі є виділений сервер, який носить назву «хаб» або «комутатор», а решта сервера називаються «ноди» або «вузли». Мережа може бути гетерогенною, тобто комутатор і вузли можуть працювати під управлінням різних операційних систем, на них можуть бути встановлені різні браузери. Одне із завдань Selenium Grid полягає в тому, щоб «підбирати» відповідний вузол, коли під час старту браузера вказуються вимоги до нього: тип браузера, версія, операційна система, архітектура процесора і ряд інших атрибутів.

Спочатку Selenium Grid був самостійним продуктом. Зараз Selenium Grid фізично продукт один з Selenium Server. Але у нього є кілька режимів запуску: він може працювати як самостійний сервер, як комутатор кластера, або як вузол кластера, це визначається параметрами запуску.

Чому на багатьох проектах використовують Selenium?

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

  • C#
  • Java
  • JavaScript
  • PHP
  • Python
  • Ruby
  • R
  • Perl

а також працювати на платформах Windows, Linux і Mac — без різниці.

Запускати паралелізовані тести з різноманітними гібридними тестовими даними.

Схожі інструменти  Cypress, and WebdriverIO поки що замінити Selenium не в змозі.

Related posts

Leave a Comment

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.