Какво е 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 за ускоряване на циклите на пускане на пазара, намаляване на ръчното тестване и осигуряване на последователно потребителско изживяване в различните браузъри, с доказани резултати в SaaS, CI/CD и предоставянето на функции.

какво е селен

Какво е Selenium?

Selenium е безплатна (с отворен код) рамка за автоматизирано тестване, използвана за валидиране на уеб приложения в различни браузъри и платформи. Можете да използвате множество езици за програмиране като Java, C#, Pythonи т.н. за създаване Selenium Тестови скриптове. Тестване, извършено с помощта на Selenium инструментът за тестване обикновено се нарича Selenium Тестване.

Експертни прозрения

„Избягвайте използването на фиксирани закъснения за заспиване в тестовете си. Вместо това използвайте изрични изчаквания (като WebDriverWait), за да изчакате елементите да се заредят. Това прави вашите скриптове по-надеждни и по-бързи, тъй като те реагират динамично на действителните условия на страницата – ключова най-добра практика за студенти навсякъде, започвайки с…“ Selenium"

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

👉 Запишете се за безплатен концерт Selenium Тест проект

Selenium Комплект инструменти

Selenium Софтуерът не е само единичен инструмент, а набор от софтуер, всяка част от която се грижи за различни Selenium QA тестване на нуждите на една организация. Ето списъка с инструменти

  • Selenium Интегрирана среда за разработка (IDE)
  • Selenium Дистанционно управление (RC)
  • уебдрайвер
  • Selenium решетка

Selenium Комплект инструменти

В момента, Selenium RC и WebDriver са обединени в една рамка за формиране Selenium 2. Selenium 1, между другото, се отнася до Selenium RC.

Video Tutorial Selenium

Кликнете тук ако видеото не е достъпно

Кой разработи Selenium?

Тъй като Selenium е колекция от различни инструменти, тя също имаше различни разработчици. По-долу са ключовите лица, които са направили забележителен принос за Selenium Проект

Разработено Selenium

Преди всичко, Selenium беше създаден от Джейсън Хъгинс през 2004 гКато инженер в ThoughtWorks, той работел върху уеб приложение, което изисквало често тестване. След като осъзнал, че повтарящото се ръчно тестване на приложението им става все по-неефективно, той създал... JavaСценарий програма, която автоматично би контролирала действията на браузъра. Той нарече тази програма "JavaScriptTestRunner.

Виждайки потенциал в тази идея за подпомагане на автоматизирането на други уеб приложения, той направи JavaScriptRunner с отворен код, който по-късно беше преименуван Selenium Ядро. За тези, които се интересуват от проучване на други опции за тестване на уеб приложения, разгледайте тези Selenium алтернативи.

Проблем с политиката за същия произход

Политиката за същия произход забранява 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 Core трябваше да инсталира цялото тествано приложение и уеб сървъра на собствените си локални компютри поради ограниченията, наложени от политика за същия произходИ така, друг инженер на ThoughtWorks, Пол Хамант, реши да създаде сървър, който да действа като HTTP прокси, за да „подмами“ браузъра да повярва, че Selenium Core и тестваното уеб приложение идват от един и същи домейн. Тази система стана известна като Selenium Дистанционно управление or Selenium 1.

Раждане на Selenium решетка

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

Selenium Grid е разработен от Патрик Лайтбоди за да се отговори на необходимостта от минимизиране на времето за изпълнение на тестовете, доколкото е възможно. Първоначално той нарече системата „Хостван контрол на качеството.“ Той беше способен да заснема екранни снимки на браузъра по време на важни етапи, както и на изпращане 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
Operaтинг система 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

QA инженер създаде Selenium решетка настроен за едновременно изпълнение на един и същ тестов набор в множество браузъри и комбинации от операционни системи. Тестовете са създадени в Python използвайки Selenium WebDriver за действия като влизане, филтриране на графики и експортиране на данни.

Резултат

  • Намалена продължителност на регресията с 80%.
  • Ранно открити специфични за браузъра грешки при рендиране (напр. неправилно подравнени графики в IE).
  • Поддържах последователен UX на таблото за управление в цялата матрица на браузъра без допълнителни ръчни цикли.

⚙️ Казус 2: CI/CD интеграция за уеб приложение чрез Selenium + TestNG

Сценарий

Средно голяма фирма за уеб разработка разчита на CI/CD конвейер, използвайки JenkinsТе трябваше да гарантират, че основните потребителски пътища работят след всяка промяна на кода.

Предизвикателство

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

Разтвор с Selenium

Тестер е внедрил Java-базиран Selenium Пакетът WebDriver е интегриран с TestNGТестовете обхващаха удостоверяване, актуализации на профили и функции за търсене. Те се провеждаха на всеки Jenkins изграждане, използвайки паралелно изпълнение и параметризация на браузъра.

Резултат

  • Постигната е бърза обратна връзка при отказ: прекъснатите потоци са маркирани незабавно.
  • Намалени грешки след внедряването с над 60%.
  • Даде възможност на разработчиците да решават проблеми, преди да стигнат до QA.

🚀 Казус 3: Ускоряване на пускането на функции за агрегатор на пътувания

Сценарий

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

Предизвикателство

Натискът за намаляване на времето за пускане на пазара не можеше да надмине ръчните тестови цикли, рискувайки забавяния или по-ниско качество.

Разтвор с Selenium & Модел на обект на страница

Ръководител на отдела за автоматизация на качеството представи структура на Page Object Model (POM) в C#. Selenium Скриптовете на WebDriver капсулираха елементи и действия на страницата (търсене на полети, прилагане на филтри и случаи на плащане). Автоматизирани тестове бяха задействани всяка вечер в GitLab CI.

Резултат

  • Времето за тестване намаля от 3 дни на само 4 часа.
  • Повторното използване на скриптове в множество функции намалява усилията за писане на скриптове с 50%.
  • Увереността се увеличи: изданието беше пуснато по график с минимални съобщения за грешки.

Общ Selenium Предизвикателства (и поправки)

Въпреки че Selenium е мощен, тестерите често се сблъскват с предизвикателства, които могат да повлияят на надеждността и скоростта. Ето някои често срещани и как да ги отстраните:

  1. Нестабилни тестове:
    Тестовете може да се провалят произволно поради проблеми с времето или мрежата.
    Fix: Използвайте изрични чакания и стабилни локатори; избягвайте Thread.sleep().
  2. Динамични уеб елементи:
    Промяната на идентификаторите на елементи или XPath-овете води до грешки „елемент не е намерен“.
    Fix: Използвайте относителни XPath-ове, CSS селектори или динамична обработка на атрибути.
  3. SyncПроблеми с хронизацията:
    Елементите се зареждат по-бавно от изпълнението на скрипта.
    Fix: Имплементирайте WebDriverWait с очаквани условия.
  4. Несъответствия между браузърите:
    Тестовете се държат различно в Chrome, Firefoxили Ръб.
    Fix: Изпълнявайте тестове на Selenium Grid или облачни платформи за междубраузърна валидация.
  5. Работа с изскачащи прозорци и известия:
    Неочакваните изскачащи прозорци могат да прекъснат тестовия поток.
    Fix: употреба SeleniumИнтерфейсът за предупреждения на Alert или блоковете try–catch за правилното им обработване.
  6. Разходи за поддръжка на тестове:
    Честите промени в потребителския интерфейс правят тестовете крехки.
    Fix: Приемете Page Object Model (POM) и контрол на версиите за лесни актуализации.
  7. Интеграционни предизвикателства:
    CI/CD каналите може да се провалят поради проблеми с драйверите.
    Fix: употреба 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 е подходящ за начинаещи, предлагайки функционалност за запис и възпроизвеждане чрез разширения на браузъра. уебдрайвер, от друга страна, е базиран на код, поддържа множество езици и предоставя усъвършенствана, мащабируема автоматизация на браузъра, подходяща за рамки за тестване в реалния свят.

Обобщете тази публикация с: