Що таке Selenium? Вступ Підручник

⚡ Розумний підсумок

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

  • Ключовий принцип: Selenium спрощує автоматизовану перевірку вебзастосунків у різних браузерах та операційних системах, підтримуючи такі мови, як Java, C#, PythonІ багато іншого.
  • Структура набору інструментів: Selenium включає чотири основні компоненти — IDE, Remote Control, WebDriver та Grid, кожен з яких відповідає на різні потреби автоматизації.
  • IDE та Prototyping: Selenium IDE — це розширення браузера для швидкого створення кейсів та прототипів.ping, але найкраще підходить для простих тестових сценаріїв.
  • Еволюція пульта дистанційного керування: Selenium RC, який зараз перебуває в режимі обслуговування, був першим фреймворком, що дозволяв використовувати тестові скрипти кількома мовами, вирішуючи проблеми з обмеженнями політик браузера.
  • Реалізація WebDriver: WebDriver безпосередньо взаємодіє з браузерами, пропонуючи контроль на рівні ОС та чудову стабільність для складної автоматизації.
  • Сітка для паралелізму: Selenium Grid дозволяє паралельне виконання тестів на кількох машинах та браузерах, що значно скорочує тривалість циклу тестування.
  • Підтримка кросбраузерності та платформи: Selenium підтримує широкий спектр браузерів та операційних систем, забезпечуючи неперевершену гнучкість для веб-QA.
  • Реальний вплив: Команди використовують Selenium щоб пришвидшити цикли випуску, зменшити ручне тестування та забезпечити узгоджений UX-інтерфейс у різних браузерах, з перевіреними результатами в SaaS, CI/CD та наданні нових функцій.

що таке селен

Що таке Selenium?

Selenium це безкоштовна платформа автоматизованого тестування (з відкритим кодом), яка використовується для перевірки веб-додатків у різних браузерах і платформах. Ви можете використовувати кілька мов програмування, наприклад Java, C#, Pythonтощо для створення Selenium Тестові сценарії. Тестування виконано за допомогою Selenium інструмент тестування зазвичай називають Selenium Тестування.

Експертні інсайти

«Уникайте використання фіксованих затримок сну у ваших тестах. Натомість використовуйте явні очікування (наприклад, WebDriverWait) для очікування завантаження елементів. Це робить ваші скрипти надійнішими та швидшими, оскільки вони динамічно реагують на фактичні умови сторінки — ключова найкраща практика для студентів у всьому світі, починаючи з…» Selenium».

— Хіманшу Шет, Selenium Експерт

👉 Зареєструйтесь для безкоштовного прямого ефіру Selenium Проект тестування

Selenium Набір інструментів

Selenium Програмне забезпечення — це не просто окремий інструмент, а набір програмного забезпечення, кожна частина якого призначена для різних потреб Selenium Потреби організації в тестуванні якості. Ось список інструментів

  • Selenium Інтегроване середовище розробки (IDE)
  • Selenium Пульт дистанційного керування (RC)
  • веб-драйвер
  • Selenium сітка

Selenium Набір інструментів

На даний момент, Selenium RC і WebDriver об’єднані в єдину структуру Selenium 2. Selenium 1, до речі, стосується Selenium RC.

Підручник відео Selenium

Натисніть тут якщо відео недоступне

Хто розробив Selenium?

З Selenium це набір різних інструментів, він також мав різних розробників. Нижче наведено ключових осіб, які зробили помітний внесок у Selenium Проекти

Розроблено Selenium

В першу чергу, Selenium було створений Джейсоном Хаггінсом у 2004 роціБудучи інженером у ThoughtWorks, він працював над веб-застосунком, який потребував частого тестування. Зрозумівши, що повторюване ручне тестування їхнього застосунку стає дедалі неефективнішим, він створив JavaScript програму, яка б автоматично керувала діями браузера. Він назвав цю програму "JavaВиконавець тестування скриптів.

Побачивши в цій ідеї потенціал для автоматизації інших веб-програм, він зробив JavaScriptRunner з відкритим кодом, який пізніше був перейменований Selenium Core. Для тих, хто зацікавлений у дослідженні інших варіантів тестування веб-додатків, подивіться на ці Selenium альтернативи.

Проблема політики того самого походження

Політика Same Origin забороняє JavaКод скрипта отримує доступ до елементів з домену, відмінного від того, де його було запущено. Наприклад, HTML-код на сайті www.google.com використовує JavaПрограма-скрипт «randomScript.js». Така ж політика походження дозволить randomScript.js отримувати доступ лише до сторінок у межах google.com, таких як google.com/mail, google.com/login або google.com/signup. Однак, він не може отримати доступ до сторінок з різних сайтів, таких як yahoo.com/search або guru99.com, оскільки вони належать до різних доменів.

Проблема політики того самого походження

Ось чому, до того, як Selenium RC, потрібні тестери для встановлення локальних копій обох Selenium Ядро (а Java(програма скриптів) та веб-сервер, що містить тестовану веб-програму, щоб вони належали до одного домену

Народження Selenium Пульт (Selenium RC)

Пол Хаммант

На жаль, тестувальники, які використовують Selenium Через обмеження, накладені політика одного походженняОтже, ще один інженер ThoughtWorks, Пол Хаммант, вирішив створити сервер, який би діяв як HTTP-проксі, щоб «обдурити» браузер, змусивши його повірити, що Selenium Ядро та веб-програма, що тестується, походять з одного домену. Ця система стала відомою як Selenium дистанційне керування or Selenium 1.

Народження Selenium сітка

Патрік Лайтбоді

Selenium Грід був розроблений Патрік Лайтбоді щоб максимально мінімізувати час виконання тестів. Спочатку він назвав систему «Контроль якості на хостингу». Він був здатний робити скріншоти браузера під час важливих етапів, а також розсилка Selenium команди для різних машин одночасно.

Народження Selenium IDE

Шинья Касатані

Шинья Касатані Японії створено Selenium IDE, то Firefox і розширення Chrome, яке може автоматизувати роботу браузера за допомогою функції запису та відтворення. Він придумав цю ідею, щоб ще більше збільшити швидкість створення тестових випадків. Він пожертвував Selenium IDE до Selenium Проект в 2006.

Народження WebDriver

Саймон Стюарт

Саймон Стюарт створено WebDriver приблизно 2006 коли веб-переглядачі та веб-додатки ставали все більш потужними та більш обмежувальними JavaПрограми-скрипти, як Selenium Основний Це був перший кросплатформний фреймворк для тестування, який міг керувати браузером на рівні ОС.

Народження Selenium 2

In 2008, Весь Selenium Команда вирішила об’єднати WebDriver і Selenium RC для створення потужнішого інструменту під назвою Selenium 2, С WebDriver є ядром. В даний час Selenium RC все ще розробляється, але лише в режимі технічного обслуговування. Більшість із Selenium Зараз зусилля проекту зосереджені на Selenium 2.

Отже, чому назва Selenium?

Ім'я Selenium походить із жарту, який Джейсон одного разу кинув своїй команді. Протягом Seleniumрозвиток, ін автоматизоване тестування фреймворк був популярно створений компанією під назвою Mercury інтерактивний (так, компанія, яка спочатку виробляла QTP до того, як його придбала HP). З того часу Selenium є відомим протиотрутою для Mercury отруєння, Джейсон запропонував це ім’я, і його взяли його товариші по команді. Ось як ми називаємо цю структуру до теперішнього часу.

Чому назва Selenium

Що таке Selenium IDE?

Selenium Інтегроване середовище розробки (IDE) - це найпростіший каркас , Selenium люкс і є найлегший для навчання. Це Chrome і Firefox підключати які ви можете встановити так само легко, як і з іншими плагінами. Однак через свою простоту, Selenium IDE слід використовувати лише як прототипping інструмент. Якщо ви хочете створити більш просунуті тестові випадки, вам потрібно буде використовувати будь-який з них Selenium RC або WebDriver.

Selenium IDE

Що таке Selenium Пульт (Selenium RC)?

Selenium RC був флагманська платформа тестування цілого Selenium проект на довгий час. Це перший автоматизований веб-тестування інструмент, який дозволяє користувачам використовувати мову програмування, яку вони віддають перевагу. Починаючи з версії 2.25.0, RC підтримує наступні мови програмування:

Selenium Пульт (Selenium RC)

Що таке WebDriver?

WebDriver виявився кращим, ніж Selenium IDE та Selenium RC у багатьох аспектах. Він реалізує більш сучасний і стабільний підхід до автоматизації дій браузера. WebDriver, на відміну від Selenium RC, не покладається на JavaСценарій для Selenium Тестування автоматизації. Він керує браузером шляхом прямого зв’язку з ним.

Підтримувані мови такі ж, як і в Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • рубін

Веб-драйвер

Що таке Selenium Сітка?

Selenium Сітка – це інструмент використовується разом з Selenium RC для запуску паралельні тести на різних машинах і в різних браузерах одночасно. Паралельне виконання означає виконання кількох тестів одночасно.

Особливості гри:

  • дозволяє одночасне виконання тестів in кілька браузерів і середовищ.
  • Економить час надзвичайно.
  • Використовує концентратори та вузли концепція. Центр виступає як центральне джерело Selenium команд для кожного підключеного до нього вузла.

Selenium Підтримка браузера та середовища

Через їх архітектурні відмінності, Selenium SDI, Selenium RC і WebDriver підтримують різні набори браузерів і операційних середовищ.

  Selenium IDE веб-драйвер
Підтримка браузера Mozilla Firefox і Chrome Google Chrome 12 +
Firefox
Internet Explorer 7+ і Edge
Сафарі,
HtmlUnit і PhantomUnit
Operating System Windows, Mac OS X, Linux Усі операційні системи, у яких можуть працювати зазначені вище веб-переглядачі.

Примітка: Opera Драйвер більше не працює

Як правильно вибрати Selenium Інструмент для ваших потреб

Інструмент Чому вибрати?
Selenium IDE
  • Щоб дізнатися про концепції автоматизованого тестування та Seleniumв тому числі:
  • Команди Selenese, такі як type, open, clickAndWait, assert, verify тощо.
  • Локатори, такі як id, name, xpath, селектор css тощо.
  • Виконання індивідуальних JavaКод сценарію за допомогою runScript
  • Експорт тестів у різні формати.
  • Щоб створювати тести з невеликими знаннями програмування або без них.
  • Щоб створити прості тестові випадки та набори тестів, які можна експортувати пізніше в RC або WebDriver.
  • Щоб перевірити веб-програму проти Firefox і лише Chrome.
Selenium RC
  • Розробити тест, використовуючи більш виразну мову, ніж Selenese
  • Щоб запустити тест у різних браузерах (крім HtmlUnit) у різних операційних системах.
  • Щоб розгорнути свої тести в кількох середовищах за допомогою Selenium Сітка.
  • Щоб протестувати свою програму в новому браузері, який підтримує JavaСценарій.
  • Для тестування веб-додатків зі складними сценаріями на основі AJAX.
веб-драйвер
  • Використовувати певну мову програмування при розробці тесту.
  • Для тестування програм, які багаті функціями на основі AJAX.
  • Для виконання тестів у браузері HtmlUnit.
  • Щоб створити індивідуальні результати тесту.
Selenium сітка
  • Запустити свій Selenium Скрипти RC у кількох браузерах та операційних системах одночасно.
  • Запустити величезний набір тестів, який потрібно виконати в найкоротші терміни.

Практичні приклади з реального світу

🔍 Тематичне дослідження 1: Сумісність між браузерами для панелі інструментів SaaS

сценарій

Компанія, що надає програмне забезпечення як послугу, готувалася випустити аналітичну панель інструментів, яка мала б послідовно функціонувати в сучасних браузерах (Chrome, Firefox, Edge, Safari).

Виклики

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

Рішення с Selenium

Інженер з контролю якості створив Selenium сітка налаштовано для одночасного виконання одного й того ж набору тестів у кількох браузерах та комбінаціях ОС. Тести були створені в Python використання Selenium WebDriver для таких дій, як вхід, фільтрація діаграм та експорт даних.

Результат

  • Зменшення тривалості регресії на 80%.
  • Рано виявляв специфічні для браузера помилки рендерингу (наприклад, неправильно вирівняні графіки в IE).
  • Забезпечено узгоджений інтерфейс користувача панелі інструментів у всій матриці браузера без додаткових ручних циклів.

⚙️ Тематичне дослідження 2: Інтеграція CI/CD для веб-застосунку через Selenium + TestNG

сценарій

Середня компанія з веб-розробки покладається на конвеєр CI/CD, використовуючи JenkinsЇм потрібно було забезпечити роботу основних шляхів користувача після кожної зміни коду.

Виклики

Нові розгортання збірок іноді порушували робочі процеси користувачів — вхід, надсилання форм — escaping виявлення до ручного тестування наприкінці дня.

Рішення с Selenium

Тестер реалізував JavaНа основі Selenium Пакет WebDriver, інтегрований з TestNGТести охоплювали автентифікацію, оновлення профілів та функції пошуку. Вони проводилися кожного Jenkins збірка, використовуючи паралельне виконання та параметризацію браузера.

Результат

  • Досягнуто швидкого зворотного зв'язку про збої: перервані потоки були негайно позначені.
  • Зменшення кількості помилок після розгортання на понад 60%.
  • Дозволило розробникам вирішувати проблеми до того, як вони досягли етапу контролю якості.

🚀 Тематичне дослідження 3: Прискорення випуску функцій для агрегатора подорожей

сценарій

Платформі агрегатора туристичних даних потрібно було випустити оновлену функцію бронювання авіаквитків. Ручне регресійне тестування на понад 10 сторінках зайняло кілька днів і заблокувало реліз.

Виклики

Тиск на скорочення часу виведення продукції на ринок не міг випередити цикли ручного тестування, що призводило до затримок або зниження якості.

Рішення с Selenium & Об'єктна модель сторінки

Керівник відділу автоматизації контролю якості представив структуру моделі об'єктів сторінки (POM) у C#. Selenium Скрипти WebDriver інкапсулювали елементи сторінки та дії (пошук рейсів, застосування фільтрів та випадки оплати). Автоматизовані тестові запуски запускалися щоночі на GitLab CI.

Результат

  • Час тестування скоротився з 3 днів до лише 4 годин.
  • Повторне використання скриптів для кількох функцій скорочує зусилля на написання скриптів на 50%.
  • Впевненість зросла: реліз вийшов за графіком з мінімальною кількістю повідомлень про помилки.

загальний Selenium Проблеми (та виправлення)

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

  1. Нестабільні тести:
    Тести можуть випадково завершитися невдачею через проблеми з часом або мережею.
    Виправити: Використовуйте явні очікування та стабільні локатори; уникайте Thread.sleep().
  2. Динамічні веб-елементи:
    Зміна ідентифікаторів елементів або XPath призводить до помилок «елемент не знайдено».
    Виправити: Використовуйте відносні XPath, CSS-селектори або динамічну обробку атрибутів.
  3. SyncПроблеми хронізації:
    Елементи завантажуються повільніше, ніж виконання скрипта.
    Виправити: Реалізуйте WebDriverWait з очікуваними умовами.
  4. Невідповідності між браузерами:
    Тести поводяться по-різному в Chrome, Firefoxабо Edge.
    Виправити: Виконайте тести на Selenium Грід- або хмарні платформи для кросбраузерної валідації.
  5. Обробка спливаючих вікон та сповіщень:
    Неочікувані спливаючі вікна можуть перервати процес тестування.
    Виправити: Скористайтеся кнопкою SeleniumІнтерфейс Alert або блоки try–catch для коректної їх обробки.
  6. Накладні витрати на обслуговування тестування:
    Часті зміни інтерфейсу користувача роблять тести крихкими.
    Виправити: Використовуйте модель об'єктів сторінок (POM) та систему контролю версій для легкого оновлення.
  7. Проблеми інтеграції:
    Конвеєри CI/CD можуть вийти з ладу через проблеми з драйверами.
    Виправити: Скористайтеся кнопкою Selenium менеджер (Selenium 4+) або WebDriver Manager для автоматичного керування драйверами.

Коротко: міст Selenium Проблеми виникають через погану синхронізацію або нестабільні локатори, і обидва вирішуються за допомогою розумніших очікувань, модульного проектування та постійного обслуговування.

Поширені запитання:

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

Selenium в основному використовується для автоматизації тестування на основі браузера. Він допомагає забезпечити правильну роботу вебзастосунків у різних браузерах, підтримує регресійне та функціональне тестування, а також легко інтегрується з конвеєрами CI/CD для безперервного тестування.

Selenium складається з чотирьох основних компонентів: Selenium IDE (інструмент запису/відтворення), Selenium RC (не підтримується), Selenium веб-драйвер (сучасний API автоматизації) та Selenium сітка (для паралельного виконання кросбраузерних тестів).

Є чотири типи: Selenium IDE для запису тестів, Selenium RC для автоматизації застарілих систем, Selenium веб-драйвер для прямого керування браузером та Selenium сітка для розподіленого, паралельного тестування в кількох браузерах.

Selenium WebDriver – це основний компонент, який безпосередньо взаємодіє з браузерами за допомогою нативних API. Він дозволяє розробникам писати надійні кросбраузерні скрипти автоматизації такими мовами, як Java, Python, та C#, не покладаючись на JavaСценарій.

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

Підсумуйте цей пост за допомогою: