Какво е Selenium? Уводен урок
⚡ Умно обобщение
Selenium е безплатна рамка за автоматизирано тестване с отворен код, предназначена за валидиране на уеб приложения в различни браузъри и платформи, използващи множество езици за програмиране. Тя позволява надеждна, ефективна и мащабируема автоматизация на тестовете за съвременни практики за осигуряване на качеството.
Какво е Selenium?
Selenium е безплатна (с отворен код) рамка за автоматизирано тестване, използвана за валидиране на уеб приложения в различни браузъри и платформи. Можете да използвате множество езици за програмиране като Java, C#, Pythonи т.н. за създаване Selenium Тестови скриптове. Тестване, извършено с помощта на Selenium инструментът за тестване обикновено се нарича Selenium Тестване.
Експертни прозрения
„Избягвайте използването на фиксирани закъснения за заспиване в тестовете си. Вместо това използвайте изрични изчаквания (като WebDriverWait), за да изчакате елементите да се заредят. Това прави вашите скриптове по-надеждни и по-бързи, тъй като те реагират динамично на действителните условия на страницата – ключова най-добра практика за студенти навсякъде, започвайки с…“ Selenium"
👉 Запишете се за безплатен концерт Selenium Тест проект
Selenium Комплект инструменти
Selenium Софтуерът не е само единичен инструмент, а набор от софтуер, всяка част от която се грижи за различни Selenium QA тестване на нуждите на една организация. Ето списъка с инструменти
- Selenium Интегрирана среда за разработка (IDE)
- Selenium Дистанционно управление (RC)
- уебдрайвер
- Selenium решетка
В момента, Selenium RC и WebDriver са обединени в една рамка за формиране Selenium 2. Selenium 1, между другото, се отнася до Selenium RC.
Video Tutorial 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 IDE?
Selenium Интегрирана среда за разработка (IDE) е най-простата рамка в Selenium апартамент и е най-лесният за научаване, Това е Chrome и Firefox плъгин които можете да инсталирате толкова лесно, колкото можете с други добавки. Въпреки това, поради своята простота, Selenium IDE трябва да се използва само като прототипping инструмент. Ако искате да създадете по-усъвършенствани тестови случаи, ще трябва да използвате и двете Selenium RC или WebDriver.
Какво е Selenium Дистанционно (Selenium RC)?
Selenium RC беше водеща рамка за тестване на цялото Selenium проект за дълго време. Това е първият автоматизиран уеб тестване инструмент, който позволява на потребителите да използват език за програмиране, който предпочитат. От версия 2.25.0 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 RC |
|
| уебдрайвер |
|
| Selenium решетка |
|
Казуси от реалния свят
🔍 Казус 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 е мощен, тестерите често се сблъскват с предизвикателства, които могат да повлияят на надеждността и скоростта. Ето някои често срещани и как да ги отстраните:
- Нестабилни тестове:
Тестовете може да се провалят произволно поради проблеми с времето или мрежата.
Fix: Използвайте изрични чакания и стабилни локатори; избягвайтеThread.sleep(). - Динамични уеб елементи:
Промяната на идентификаторите на елементи или XPath-овете води до грешки „елемент не е намерен“.
Fix: Използвайте относителни XPath-ове, CSS селектори или динамична обработка на атрибути. - SyncПроблеми с хронизацията:
Елементите се зареждат по-бавно от изпълнението на скрипта.
Fix: Имплементирайте WebDriverWait с очаквани условия. - Несъответствия между браузърите:
Тестовете се държат различно в Chrome, Firefoxили Ръб.
Fix: Изпълнявайте тестове на Selenium Grid или облачни платформи за междубраузърна валидация. - Работа с изскачащи прозорци и известия:
Неочакваните изскачащи прозорци могат да прекъснат тестовия поток.
Fix: употреба SeleniumИнтерфейсът за предупреждения на Alert или блоковете try–catch за правилното им обработване. - Разходи за поддръжка на тестове:
Честите промени в потребителския интерфейс правят тестовете крехки.
Fix: Приемете Page Object Model (POM) и контрол на версиите за лесни актуализации. - Интеграционни предизвикателства:
CI/CD каналите може да се провалят поради проблеми с драйверите.
Fix: употреба Selenium мениджър (Selenium 4+) или WebDriver Manager за автоматично управление на драйвери.
Накратко: мост Selenium Проблемите произтичат от лоша синхронизация или крехки локатори – и двете могат да бъдат решени чрез по-интелигентно чакане, модулен дизайн и непрекъсната поддръжка.





.png)
.jpg)
.jpg)
.jpg)



