Co je to Selenium? Úvod Výukový program

⚡ Chytré shrnutí

Selenium je bezplatný, open-source framework pro automatizované testování určený k ověřování webových aplikací napříč prohlížeči a platformami s využitím více programovacích jazyků. Umožňuje robustní, efektivní a škálovatelnou automatizaci testování pro moderní postupy QA.

  • Klíčový princip: Selenium usnadňuje automatizované ověřování webových aplikací v různých prohlížečích a operačních systémech a podporuje jazyky jako Java, C#, Python, A další.
  • Struktura sady nástrojů: Selenium zahrnuje čtyři hlavní komponenty – IDE, Remote Control, WebDriver a Grid – z nichž každá řeší odlišné potřeby automatizace.
  • IDE a prototypování: Selenium IDE je rozšíření prohlížeče pro rychlé vytváření případů a prototypů, ale nejlépe se hodí pro jednoduché testovací scénáře.
  • Vývoj dálkového ovládání: Selenium RC, nyní v režimu údržby, byl prvním frameworkem umožňujícím testovací skripty ve více jazycích, čímž řešil omezení politik prohlížeče.
  • Implementace WebDriveru: WebDriver přímo komunikuje s prohlížeči a nabízí tak kontrolu na úrovni operačního systému a vynikající stabilitu pro komplexní automatizaci.
  • Mřížka pro rovnoběžnost: Selenium Grid umožňuje paralelní provádění testů na více počítačích a v různých prohlížečích, což drasticky zkracuje dobu trvání testovacího cyklu.
  • Podpora pro různé prohlížeče a platformy: Selenium podporuje širokou škálu prohlížečů a operačních systémů, což poskytuje bezkonkurenční flexibilitu pro webové QA.
  • Dopad na skutečný svět: Týmy používají Selenium urychlit cykly vydávání, snížit manuální testování a zajistit konzistentní uživatelskou zkušenost napříč prohlížeči s osvědčenými výsledky v SaaS, CI/CD a dodávání funkcí.

co je selen

Co je to Selenium?

Selenium je bezplatný (open-source) automatizovaný testovací rámec používaný k ověřování webových aplikací napříč různými prohlížeči a platformami. Můžete použít více programovacích jazyků jako např Java, C#, Pythonatd. vytvořit Selenium Testovací skripty. Testování se provádí pomocí Selenium testovací nástroj je obvykle označován jako Selenium Testování.

Odborné postřehy

„Vyhněte se používání fixních zpoždění spánku ve vašich testech. Místo toho používejte explicitní čekání (jako WebDriverWait) k čekání na načtení prvků. Díky tomu jsou vaše skripty spolehlivější a rychlejší, protože dynamicky reagují na skutečné podmínky stránky – což je klíčový osvědčený postup pro studenty na celém světě, počínaje…“ Selenium. "

— Himanšu Šet, Selenium Odborník

👉 Zaregistrujte se pro živé vysílání zdarma Selenium Testovací projekt

Selenium Sada nástrojů

Selenium Software není jen jeden nástroj, ale sada softwaru, z nichž každý vyhovuje něčemu jinému Selenium Potřeby organizace testování kvality. Zde je seznam nástrojů

  • Selenium Integrované vývojové prostředí (IDE)
  • Selenium Dálkové ovládání (RC)
  • webový ovladač
  • Selenium Mřížka

Selenium Sada nástrojů

Momentálně, Selenium RC a WebDriver jsou sloučeny do jednoho rámce a tvoří se Selenium 2. Selenium 1, mimochodem, odkazuje Selenium RC.

Video Tutorial Selenium

klikněte zde pokud video není přístupné

Kdo se vyvíjel Selenium?

Od Selenium je sbírka různých nástrojů, měla také různé vývojáře. Níže jsou uvedeny klíčové osoby, které do projektu významně přispěly Selenium Projekt

Rozvinutý Selenium

Především, Selenium byl vytvořil Jason Huggins v roce 2004Jako inženýr ve společnosti ThoughtWorks pracoval na webové aplikaci, která vyžadovala časté testování. Poté, co si uvědomil, že opakované ruční testování jejich aplikace se stává stále neefektivním, vytvořil... JavaScénář program, který by automaticky ovládal akce prohlížeče. Tento program pojmenoval "JavaSpouštěč testů skriptů.

Viděl potenciál v této myšlence pomoci automatizovat další webové aplikace, udělal JavaScriptRunner open-source, který byl později přejmenován Selenium Jádro. Pro ty, kteří mají zájem prozkoumat další možnosti testování webových aplikací, se podívejte na tyto Selenium alternativy.

Stejný problém se zásadami původu

Zásady stejného původu zakazují JavaKód skriptu z přístupu k prvkům z domény, která je jiná než tam, kde byl spuštěn. Například HTML kód na www.google.com používá JavaSkriptovací program „randomScript.js“. Stejná politika původu povolí programu randomScript.js přístup pouze ke stránkám v rámci google.com, jako například google.com/mail, google.com/login nebo google.com/signup. Nemůže však přistupovat ke stránkám z různých webů, jako například yahoo.com/search nebo guru99.com, protože patří do různých domén.

Stejný problém se zásadami původu

To je důvod, proč předtím, než Selenium RC, testeři potřebovali nainstalovat místní kopie obou Selenium Jádro (a JavaSkriptovací program) a webový server obsahující testovanou webovou aplikaci, takže by patřily do stejné domény

Narození Selenium Dálkové ovládání (Selenium RC)

Paul Hammant

Bohužel, testeři používající Selenium Core muselo nainstalovat celou testovanou aplikaci a webový server na své vlastní místní počítače kvůli omezením uloženým společností zásada stejného původuTakže další inženýr z ThoughtWorks, Paul Hammantse rozhodl vytvořit server, který by fungoval jako HTTP proxy, aby „oklamal“ prohlížeč a přiměl ho uvěřit, že Selenium Core a testovaná webová aplikace pocházejí ze stejné domény. Tento systém se stal známým jako Selenium dálkové ovládání or Selenium 1.

Narození Selenium Mřížka

Patrik Lightbody

Selenium Grid byl vyvinut společností Patrik Lightbody aby se vypořádal s potřebou co nejvíce minimalizovat dobu provádění testů. Systém zpočátku nazýval „Hostované zajištění kvality.“ Byl schopen zachytit snímky obrazovky prohlížeče během významných fází a také odesílání Selenium příkazy různým strojům současně.

Narození Selenium IDE

Shinya Kasatani

Shinya Kasatani Japonska vytvořil Selenium IDE, je Firefox a rozšíření pro Chrome, které dokáže automatizovat prohlížeč pomocí funkce nahrávání a přehrávání. S tímto nápadem přišel, aby dále zvýšil rychlost vytváření testovacích případů. Daroval Selenium IDE do Selenium Projekt v 2006.

Zrození WebDriveru

Simon Stewart

Simon Stewart vytvořil WebDriver cca 2006 kdy byly prohlížeče a webové aplikace stále výkonnější a více omezující JavaSkriptovací programy jako Selenium Jádro. Byl to první multiplatformní testovací framework, který dokázal ovládat prohlížeč na úrovni operačního systému.

Narození Selenium 2

In 2008, Celý Selenium Tým se rozhodl sloučit WebDriver a Selenium RC k vytvoření silnějšího nástroje s názvem Selenium 2s Jádrem je WebDriver. V současné době, Selenium RC se stále vyvíjí, ale pouze v režimu údržby. Většina Selenium Úsilí projektu se nyní soustředí na Selenium 2.

Tak proč ten název Selenium?

Název Selenium vyšel z vtipu, který Jason jednou prohodil svému týmu. Během Selenium's vývoj, další automatické testování Rámec byl populárně vytvořen společností s názvem Mercury interaktivní (ano, společnost, která původně vyráběla QTP, než ji koupila společnost HP). Od té doby Selenium je známým protijedem Mercury otravy, Jason navrhl to jméno a jeho spoluhráči to vzali. Tak jsme museli nazývat tento rámec až do současnosti.

Proč Jméno Selenium

Co je to Selenium IDE?

Selenium Integrované vývojové prostředí (IDE) je nejjednodušší rámec v Selenium apartmá a je nejsnadnější se to naučit. Jedná se o Chrome a Firefox plugin které můžete nainstalovat stejně snadno jako s jinými pluginy. Díky své jednoduchosti však Selenium IDE by se mělo používat pouze jako a prototypovací nástroj. Pokud chcete vytvořit pokročilejší testovací případy, budete muset použít kterýkoli z nich Selenium RC nebo WebDriver.

Selenium IDE

Co je to Selenium Dálkové ovládání (Selenium RC)?

Selenium RC byl vlajková loď testovacího rámce celku Selenium projekt na dlouhou dobu. Toto je první automatizovaný testování webu nástroj, který umožňuje uživatelům používat programovací jazyk, který preferují. Od verze 2.25.0 může RC podporovat následující programovací jazyky:

Selenium Dálkové ovládání (Selenium RC)

Co je WebDriver?

WebDriver se ukazuje jako lepší než Selenium IDE a Selenium RC v mnoha ohledech. Implementuje modernější a stabilnější přístup k automatizaci akcí prohlížeče. WebDriver, na rozdíl od Selenium RC, nespoléhá na JavaSkript pro Selenium Testování automatizace. Ovládá prohlížeč tak, že s ním přímo komunikuje.

Podporované jazyky jsou stejné jako v Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubín

Webdriver

Co je to Selenium Mřížka?

Selenium Mřížka je nástroj používá se společně s Selenium RC spustit paralelní testy na různých počítačích a v různých prohlížečích najednou. Paralelní provádění znamená spuštění více testů najednou.

Funkce:

  • umožňuje simultánní běh testů in více prohlížečů a prostředí.
  • Šetří čas obrovsky.
  • Využívá hub-and-nodes pojem. Hub funguje jako centrální zdroj Selenium příkazy každému připojenému uzlu.

Selenium Podpora prohlížeče a prostředí

Kvůli jejich architektonickým rozdílům, Selenium SDI, Selenium RC a WebDriver podporují různé sady prohlížečů a operačních prostředí.

  Selenium IDE webový ovladač
Podpora prohlížeče Mozilla Firefox a Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ a Edge
Safari,
HtmlUnit a PhantomUnit
Operasystém Windows, Mac OS X, Linux Všechny operační systémy, kde lze spustit výše uvedené prohlížeče.

Poznámka: Opera Ovladač již nefunguje

Jak si vybrat správně Selenium Nástroj pro vaše potřeby

Nástroj Proč si vybrat?
Selenium IDE
  • Chcete-li se dozvědět o konceptech automatického testování a Selenium, Včetně:
  • Selenese příkazy, jako je typ, otevřít, kliknout a počkat, potvrdit, ověřit atd.
  • Lokátory jako id, jméno, xpath, css selektor atd.
  • Provádění přizpůsobené JavaSkriptujte kód pomocí runScriptu
  • Export testovacích případů v různých formátech.
  • Vytvořit testy s malými nebo žádnými předchozími znalostmi v programování.
  • Chcete-li vytvořit jednoduché testovací případy a testovací sady, které můžete později exportovat do RC nebo WebDriver.
  • Chcete-li otestovat webovou aplikaci proti Firefox a pouze Chrome.
Selenium RC
  • Navrhnout test pomocí výraznějšího jazyka než selenština
  • Chcete-li spustit test proti různým prohlížečům (kromě HtmlUnit) na různých operačních systémech.
  • Chcete-li nasadit své testy do více prostředí pomocí Selenium Mřížka
  • Chcete-li otestovat aplikaci proti novému prohlížeči, který podporuje JavaSkript.
  • Testování webových aplikací pomocí složitých scénářů založených na AJAX.
webový ovladač
  • Chcete-li použít určitý programovací jazyk při navrhování vašeho testovacího případu.
  • Testování aplikací, které jsou bohaté na funkce založené na AJAX.
  • Chcete-li provést testy v prohlížeči HtmlUnit.
  • Chcete-li vytvořit přizpůsobené výsledky testů.
Selenium Mřížka
  • Chcete-li spustit svůj Selenium RC skripty ve více prohlížečích a operačních systémech současně.
  • Spustit rozsáhlou sadu testů, kterou je třeba dokončit v co nejkratším čase.

Případové studie z reálného světa

🔍 Případová studie 1: Kompatibilita SaaS dashboardu napříč prohlížeči

Scénář

Společnost poskytující software jako službu se připravovala na vydání analytického dashboardu, který musel konzistentně fungovat v moderních prohlížečích (Chrome, Firefox, Edge, Safari).

Vyzvat

Manuální testování v každém prohlížeči bylo časově náročné, náchylné k chybám a nedokázalo držet krok s rychlými iteracemi vývoje.

Řešení s Selenium

Inženýr QA vytvořil Selenium Mřížka nastavení pro současné spouštění stejné sady testů v různých prohlížečích a kombinacích operačních systémů. Testy byly vytvořeny v Python použitím Selenium WebDriver pro akce jako přihlášení, filtrování grafů a export dat.

Výsledek

  • Zkrácená doba trvání regrese o 80 %.
  • Včas odhalil chyby vykreslování specifické pro prohlížeč (např. špatně zarovnané grafy v IE).
  • Udržoval konzistentní uživatelské rozhraní dashboardu v celém prohlížeči bez nutnosti zbytečných manuálních cyklů.

⚙️ Případová studie 2: Integrace CI/CD pro webovou aplikaci prostřednictvím Selenium + TestNG

Scénář

Středně velká webová vývojářská firma se spoléhá na CI/CD pipeline s využitím Jenkinsu. Potřebovala zajistit, aby základní uživatelské cesty fungovaly po každé změně kódu.

Vyzvat

Nové nasazení sestavení občas narušovalo uživatelské toky – přihlašování, odesílání formulářů – a unikalo detekci až do manuálního testování na konci dne.

Řešení s Selenium

Tester implementoval Java-na základě Selenium Sada WebDriver integrovaná s TestNGTesty zahrnovaly ověřování, aktualizace profilů a vyhledávací funkce. Tyto testy běžely na všech sestaveních Jenkinsu s využitím paralelního spouštění a parametrizace prohlížeče.

Výsledek

  • Dosažena rychlá zpětná vazba po selhání: přerušené toky byly okamžitě označeny.
  • Snížení chyb po nasazení o více než 60 %.
  • Umožnilo vývojářům řešit problémy ještě před dosažením QA.

🚀 Případová studie 3: Urychlení vydávání funkcí pro agregátor cestovních informací

Scénář

Platforma agregátora cestovních informací potřebovala vydat přepracovanou funkci rezervace letů. Manuální regresní testy na více než 10 stránkách trvaly několik dní a zablokovaly vydání.

Vyzvat

Tlak na zkrácení doby uvedení na trh nemohl překonat manuální testovací cykly, což riskovalo zpoždění nebo nižší kvalitu.

Řešení s Selenium & Model objektu stránky

Vedoucí oddělení automatizace QA představil strukturu modelu objektů stránky (POM) v jazyce C#. Selenium Skripty WebDriver zapouzdřovaly prvky stránky a akce (vyhledávání letů, použití filtrů a platební případy). Automatizované testovací běhy byly spouštěny každou noc na GitLab CI.

Výsledek

  • Doba testování se zkrátila ze 3 dnů na pouhé 4 hodiny.
  • Opětovné použití skriptů napříč různými funkcemi snižuje úsilí při skriptování o 50 %.
  • Důvěra se zvýšila: verze byla vydána včas s minimálním počtem hlášení chyb.

Společný Selenium Výzvy (a opravy)

Třebaže Selenium je výkonný, testeři se často potýkají s problémy, které mohou ovlivnit spolehlivost a rychlost. Zde je několik běžných problémů a jak je vyřešit:

  1. Nespolehlivé testy:
    Testy mohou náhodně selhat kvůli problémům s načasováním nebo sítí.
    Fix: Používejte explicitní čekací operace a stabilní lokátory; vyhněte se Thread.sleep().
  2. Dynamické webové prvky:
    Změna ID elementů nebo XPathů způsobuje chyby typu „element nebyl nalezen“.
    Fix: Používejte relativní XPath, CSS selektory nebo dynamické zpracování atributů.
  3. SyncProblémy s chronizací:
    Prvky se načítají pomaleji než provádění skriptu.
    Fix: Implementujte WebDriverWait s očekávanými podmínkami.
  4. Nesrovnalosti mezi prohlížeči:
    Testy se v Chromu chovají jinak, Firefoxnebo Okraj.
    Fix: Spustit testy na Selenium Gridové nebo cloudové platformy pro validaci napříč prohlížeči.
  5. Zpracování vyskakovacích oken a upozornění:
    Neočekávaná vyskakovací okna mohou přerušit průběh testu.
    Fix: Použijte SeleniumRozhraní Alert nebo bloky try–catch pro jejich elegantní zpracování.
  6. Režijní náklady na údržbu testů:
    Časté změny uživatelského rozhraní činí testy křehkými.
    Fix: Pro snadné aktualizace použijte model objektů stránek (POM) a správu verzí.
  7. Integrační výzvy:
    Kanály CI/CD mohou selhat kvůli problémům s ovladači.
    Fix: Použijte Selenium Manažer (Selenium 4+) nebo WebDriver Manager pro automatickou správu ovladačů.

Ve zkratce: Většina Selenium Problémy pramení ze špatné synchronizace nebo křehkých lokátorů – obojí lze řešit inteligentnějším čekáním, modulárním designem a průběžnou údržbou.

Nejčastější dotazy:

Selenium je open-source automatizační framework používaný k testování webových aplikací v různých prohlížečích a na různých platformách. Umožňuje testerům simulovat uživatelské interakce, jako jsou kliknutí, odesílání formulářů a navigace, pomocí různých programovacích jazyků.

Selenium se primárně používá k automatizaci testování v prohlížeči. Pomáhá zajistit správné fungování webových aplikací napříč prohlížeči, podporuje regresní a funkční testování a snadno se integruje s pipeline CI/CD pro průběžné testování.

Selenium skládá se ze čtyř hlavních složek: Selenium IDE (nástroj pro nahrávání/přehrávání), Selenium RC (zastaralé), Selenium webový ovladač (moderní automatizační API) a Selenium Mřížka (pro paralelní provádění testů napříč prohlížeči).

Čtyři typy jsou: Selenium IDE pro záznam testů, Selenium RC pro starší automatizaci, Selenium webový ovladač pro přímé ovládání prohlížeče a Selenium Mřížka pro distribuované, paralelní testování napříč více prohlížeči.

Selenium WebDriver je klíčová komponenta, která přímo interaguje s prohlížeči pomocí nativních API. Umožňuje vývojářům psát robustní automatizační skripty pro různé prohlížeče v jazycích jako Java, Pythona C#, bez spoléhání se na JavaSkript.

Selenium IDE je vhodný pro začátečníky a nabízí funkce nahrávání a přehrávání prostřednictvím rozšíření prohlížeče. webový ovladač, na druhou stranu, je založen na kódu, podporuje více jazyků a poskytuje pokročilou, škálovatelnou automatizaci prohlížeče vhodnou pro reálné testovací frameworky.

Shrňte tento příspěvek takto: