Какво е Selenium? Уводен урок
Какво е Selenium?
Selenium е безплатна (с отворен код) рамка за автоматизирано тестване, използвана за валидиране на уеб приложения в различни браузъри и платформи. Можете да използвате множество езици за програмиране като Java, C#, Pythonи т.н. за създаване Selenium Тестови скриптове. Тестване, извършено с помощта на Selenium инструментът за тестване обикновено се нарича Selenium Тестване.
Експертни прозрения
„Избягвайте използването на фиксирани закъснения за заспиване в тестовете си. Вместо това използвайте изрични изчаквания (като WebDriverWait), за да изчакате елементите да се заредят. Това прави вашите скриптове по-надеждни и по-бързи, тъй като те реагират динамично на действителните условия на страницата – ключова най-добра практика за студенти навсякъде, започвайки с…“ 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 използва a 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 трябваше да инсталира цялото тествано приложение и уеб сървъра на собствените си локални компютри поради ограниченията, наложени от същата политика за произход. Така че друг инженер на ThoughtWork, Пол Хамант, реши да създаде сървър, който ще действа като HTTP прокси, за да „подмами“ браузъра да повярва в това Selenium Core и тестваното уеб приложение идват от един и същи домейн. Тази система стана известна като Selenium Дистанционно управление or Selenium 1.
Раждане на Selenium решетка
Selenium Grid е разработен от Патрик Лайтбоди за да отговори на необходимостта от минимизиране на времето за изпълнение на теста, доколкото е възможно. Първоначално той нарече системата „Хостван QA.” Той беше способен да заснема екранни снимки на браузъра по време на важни етапи, а също и на изпращане 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 трябва да се използва само като инструмент за създаване на прототипи. Ако искате да създадете по-усъвършенствани тестови случаи, ще трябва да използвате и двете 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 решетка |
|
Сравнение между Selenium и QTP (сега UFT)
Quick Test Professional (QTP) е патентован инструмент за автоматизирано тестване, който преди е бил собственост на компанията Mercury интерактивен преди Hewlett-Packard да го придобие в 2006. По-късният му собственик е MicroFocus и инструментът е преименуван на UFT one. The Selenium Tool Suite има много предимства пред QTP както е описано по-долу –
Предимства и ползи от Selenium над QTP
Selenium | QTP |
---|---|
Отворен код, безплатен за използване, и безплатно. | търговски. |
Високо разтеглив | Ограничени добавки |
Може да провежда тестове различни браузъри | Може да изпълнява тестове само в Firefox, Internet Explorer намлява Chrome |
Поддържа различни операционни системи | Може да се използва само в Windows |
Поддържа мобилни устройства | QTP Поддържа автоматизация на тестване на мобилни приложения (iOS и Android) с помощта на решение на HP, наречено – HP Mobile Center |
Може да изпълнява тестове докато - браузърът е минимизиран | Необходимо е приложението да се тества, за да се вижда на работния плот |
Може да изпълнява тестове паралелно. | Може да се изпълнява само паралелно, но с помощта на Quality Center, който отново е платен продукт. |
Казуси от реалния свят
🔍 Казус 1: Съвместимост между браузъри за SaaS табло за управление
Сценарий
Компания, предлагаща софтуер като услуга, се подготвяше да пусне табло за анализи, което трябваше да функционира последователно в съвременните браузъри (Chrome, Firefox, Edge, Safari).
Предизвикателство
Ръчното тестване във всеки браузър отнемаше време, беше податливо на грешки и не можеше да се справи с бързите итерации на разработка.
Разтвор с Selenium
QA инженер създаде Selenium решетка настроен за едновременно изпълнение на един и същ тестов набор в множество браузъри и комбинации от операционни системи. Тестовете са създадени в Python използвайки Selenium WebDriver за действия като влизане, филтриране на графики и експортиране на данни.
Резултат
- Намалена продължителност на регресията с 80%.
- Ранно открити специфични за браузъра грешки при рендиране (напр. неправилно подравнени графики в IE).
- Поддържах последователен потребителски интерфейс на таблото за управление в цялата матрица на браузъра без допълнителни ръчни цикли.
⚙️ Казус 2: CI/CD интеграция за уеб приложение чрез Selenium + TestNG
Сценарий
Средно голяма фирма за уеб разработка разчита на CI/CD конвейер, използващ Jenkins. Те трябваше да гарантират, че основните потребителски пътища работят след всяка промяна на кода.
Предизвикателство
Новите внедрявания на компилации понякога нарушаваха потребителските потоци – влизане, подаване на формуляри – като избягваха откриването до ръчното тестване в края на деня.
Разтвор с Selenium
Тестер е внедрил Java-базиран Selenium Пакетът WebDriver е интегриран с TestNGТестовете обхващаха удостоверяване, актуализации на профили и функционалности за търсене. Те се изпълняваха на всяка компилация на Jenkins, използвайки паралелно изпълнение и параметризация на браузъра.
Резултат
- Постигната е бърза обратна връзка при отказ: прекъснатите потоци са маркирани незабавно.
- Намалени грешки след внедряването с над 60%.
- Даде възможност на разработчиците да решават проблеми, преди да стигнат до QA.
🚀 Казус 3: Ускоряване на пускането на функции за агрегатор на пътувания
Сценарий
Платформа за агрегатор на туристически данни трябваше да пусне обновена функция за резервации на полети. Ръчните регресионни тестове върху над 10 страници отнеха дни и блокираха пускането на пазара.
Предизвикателство
Натискът за намаляване на времето за пускане на пазара не можеше да надмине ръчните тестови цикли, рискувайки забавяния или по-ниско качество.
Разтвор с Selenium & Модел на обект на страница
Ръководител на отдела за автоматизация на качеството представи структура на Page Object Model (POM) в C#. Selenium Скриптовете на WebDriver капсулираха елементи и действия на страницата (търсене на полети, прилагане на филтри, случаи на плащане). Автоматизирани тестове бяха задействани всяка вечер в GitLab CI.
Резултат
- Времето за тестване намаля от 3 дни на само 4 часа.
- Повторното използване на скриптове в множество функции намалява усилията за писане на скриптове с 50%.
- Увереността се увеличи: изданието беше пуснато по график с минимални съобщения за грешки.
Предимства на QTP пред Selenium
QTP | Selenium |
---|---|
Може да тества както уеб, така и десктоп приложения | Може да тества само уеб приложения |
Идва с a вградено хранилище на обекти | Няма вградено хранилище на обекти |
Автоматизира по-бързо от Selenium защото е пълнофункционална IDE. | Автоматизира се с по-бавна скорост, тъй като няма собствена IDE и само IDE на трета страна може да се използва за разработка. |
Тестването, управлявано от данни, е по-лесно за изпълнение, защото има вградени глобални и локални таблици с данни. | Тестването, управлявано от данни, е по-тромаво, тъй като трябва да разчитате на възможностите на езика за програмиране за задаване на стойности за вашите тестови данни |
Има достъп до контроли в браузъра(като лентата с предпочитани, адресната лента, бутоните Назад и Напред и др.) | Няма достъп до елементи извън тестваното уеб приложение |
Осигурява професионални поддръжка на клиенти | Не се предлага официална потребителска поддръжка. |
Има естествена способност за експортиране на тестови данни във външни формати | Няма вградена възможност за експортиране на данни по време на изпълнение във външни формати |
Изградена е поддръжка за параметризация | Параметризирането може да се извърши чрез програмиране, но е трудно за изпълнение. |
Докладите от тестовете се генерират автоматично | Няма вградена поддръжка за генериране на доклади за тест/бъг. |
Въпреки че е ясно, че QTP има по-разширени възможности, Selenium превъзхожда QTP в три основни области:
- цена(тъй като Selenium е напълно безплатно)
- Гъвкавост(поради редица езици за програмиране, браузъри и платформи, които може да поддържа)
- Паралелно тестване(нещо, на което QTP е способен, но само с използване на Quality Center)
Oбобщение
- Цялата Selenium Пакетът за тестване на софтуер се състои от четири компонента:
- Selenium IDE, а Firefox и хромирана добавка, която можете да използвате само за създаване на относително прости тестови случаи и тестови пакети.
- Selenium Дистанционно управление, известно още като Selenium 1, е първият Selenium инструмент, който позволява на потребителите да използват езици за програмиране при създаване на сложни тестове.
- WebDriver е по-новият пробив, който позволява на вашите тестови скриптове да комуникират директно с браузъра, като по този начин го контролират от ниво ОС.
- Selenium Grid също е инструмент, който се използва с Selenium RC за изпълнение на паралелни тестове в различни браузъри и операционни системи.
- Selenium RC и WebDriver бяха обединени във форма Selenium 2.
- Selenium е по-изгоден от Microfocus UFT One по отношение на разходите и гъвкавостта.