Selen (software) - Selenium (software)

Selen
Logo selenu. Svg
Stabilní uvolnění
3.141.59 / 19. listopadu 2018 ; Před 2 roky ( 2018-11-19 )
Úložiště
Napsáno Selenium Server: Java ; Selenium WebDriver (funguje bez Selenium Server), oficiální podpora: JavaScript ( Node.js ), Python , Ruby , Java nebo C#
Operační systém Cross-platform
Typ Rámec pro testování softwaru pro webové aplikace
Licence Licence Apache 2.0
webová stránka selen .dev Upravte to na Wikidata

Selenium je open-source automatizovaný testovací framework pro webové aplikace . Selenium poskytuje nástroj pro přehrávání pro vytváření funkčních testů bez nutnosti naučit se testovací skriptovací jazyk (Selenium IDE). Poskytuje také testovací jazyk specifický pro doménu (Selenese) pro psaní testů v řadě populárních programovacích jazyků, včetně JavaScript ( Node.js ), C# , Groovy , Java , Perl , PHP , Python , Ruby a Scala . Testy pak lze spustit proti většině moderních webových prohlížečů . Selenium běží na Windows , Linux a macOS . Jedná se o open-source software vydaný pod licencí Apache License 2.0 .

Dějiny

Selenium původně vyvinul Jason Huggins v roce 2004 jako interní nástroj v ThoughtWorks . K Hugginsovi se později přidali další programátoři a testeři v ThoughtWorks, než se k týmu připojil Paul Hammant a řídil vývoj druhého provozního režimu, ze kterého se později stane „dálkové ovládání selenu“ (RC). Ten rok byl nástroj otevřený.

V roce 2005 Dan Fabulich a Nelson Sproul (s pomocí Pat Lightbody) učinili nabídku přijmout sérii záplat, které by transformovaly Selenium-RC na to, čím se stal nejlépe známým. Na stejném zasedání by řízení selenu jako projektu pokračovalo jako výbor, zástupci ThoughtWorks by byli Huggins a Hammant.

V roce 2007 se Huggins připojil ke společnosti Google. Spolu s dalšími, jako je Jennifer Bevan, pokračoval ve vývoji a stabilizaci Selenium RC. Simon Stewart ve společnosti ThoughtWorks zároveň vyvinul vynikající nástroj pro automatizaci prohlížeče s názvem WebDriver. V roce 2009, po setkání mezi vývojáři na konferenci Google Test Automation Conference, bylo rozhodnuto o sloučení obou projektů a nazvání nového projektu Selenium WebDriver neboli Selenium 2.0.

V roce 2008 vyrobil Philippe Hanrigou (tehdy ThoughtWorks) „Selenium Grid“, který poskytuje rozbočovač umožňující souběžné spouštění více testů Selenium na libovolném počtu místních nebo vzdálených systémů, čímž se minimalizuje doba provádění testu. Grid jako open source nabízel podobnou schopnost jako interní/soukromý cloud Google pro Selenium RC. Pat Lightbody již vytvořil soukromý cloud pro „HostedQA“, který prodal společnosti Gomez, Inc.

Název Selenium pochází z vtipu, který Huggins vytvořil v e -mailu a zesměšňoval konkurenta jménem Mercury , který říká, že otravu rtutí můžete vyléčit užíváním doplňků selenu. Ostatní, kteří obdrželi e -mail, převzali jméno a běželi s ním.

Komponenty

Selen se skládá z několika složek, z nichž každá přebírá konkrétní roli při vývoji automatizace testů webových aplikací .

Selen IDE

Selenium IDE je kompletní integrované vývojové prostředí (IDE) pro testy selenu. Je implementován jako doplněk Firefoxu a jako rozšíření pro Chrome . Umožňuje záznam, úpravy a ladění funkčních testů. Dříve byl znám jako Selenium Recorder. Selenium-IDE byl původně vytvořen Shinyou Kasatani a darován na projekt Selenium v ​​roce 2006. Selenium IDE bylo dříve málo udržované. Selenium IDE se začalo aktivně udržovat v roce 2018.

Skripty lze automaticky zaznamenávat a upravovat ručně, což poskytuje podporu automatického doplňování a schopnost rychle přesouvat příkazy. Skripty jsou zaznamenány v Selenese , což je speciální testovací skriptovací jazyk pro Selenium. Selenese poskytuje příkazy pro provádění akcí v prohlížeči (klikněte na odkaz, vyberte možnost) a pro načítání dat z výsledných stránek.

Verze 2.x Selenium IDE pro Firefox přestala fungovat po upgradu Firefox 55 a byla nahrazena Selenium IDE 3.x.

Kromě oficiálního projektu Selenium IDE jsou aktivně udržována dvě alternativní rozšíření prohlížeče Selenium IDE: Kantu ( licence GPL Open-Source ) a Katalon Recorder ( Open-Source ).

Selenium client API

Jako alternativu k psaní testů v Selenese lze testy psát také v různých programovacích jazycích. Tyto testy pak komunikují se Seleniem voláním metod v Selenium Client API. Selenium v ​​současné době poskytuje klientská API pro Javu , C# , Ruby , JavaScript , R a Python .

S Selenium 2 bylo představeno nové klientské API (s ústředním komponentem WebDriver ). Staré API (využívající třídu Selenium ) je však stále podporováno.

Selenové dálkové ovládání

Selenium Remote Control (RC) je server napsaný v jazyce Java , který přijímá příkazy pro prohlížeč prostřednictvím HTTP . RC umožňuje psát automatizované testy pro webovou aplikaci v jakémkoli programovacím jazyce, což umožňuje lepší integraci selenu do stávajících rámců testů jednotek. Aby bylo psaní testů snazší, projekt Selenium aktuálně poskytuje klientské ovladače pro PHP , Python , Ruby , .NET , Perl a Java . Ovladač Java lze také použít s JavaScriptem (prostřednictvím modulu Rhino ). Ke spuštění testovacího případu html je zapotřebí instance selenového RC serveru - což znamená, že port by měl být pro každé paralelní spuštění jiný. U testovacího případu Java/PHP však musí být nepřetržitě spuštěna pouze jedna instance Selenium RC.

Selenium Remote Control byl refaktoring Driven Selenium nebo Selenium B navržený Paulem Hammantem, připsaný Jasonem jako spolutvůrcem Selenium. Původní verze přímo spustila proces pro dotyčný prohlížeč z testovacího jazyka Java, .NET, Python nebo Ruby. Drátový protokol (v té době nazývaný „Selenese“) byl znovu implementován v každém jazykovém portu. Po refaktoru Dana Fabulicha a Nelsona Sproula (s pomocí Pat Lightbody) došlo k přechodnému procesu démona mezi skriptem řidičského testu a prohlížečem. Mezi výhody patřila možnost řídit vzdálené prohlížeče a snížená potřeba přenášet každý řádek kódu do stále rostoucí sady jazyků. Selenium Remote Control zcela převzal z kódové řady Driven Selenium v ​​roce 2006. Vzorec prohlížeče pro 'Driven'/'B' a 'RC' byl odpověď/požadavek, který se následně stal známým jako Comet .

Selenium RC sloužil jako vlajkový testovací rámec celého projektu selenu po dlouhou dobu. A výrazně je Selenium RC prvním a především automatizovaným nástrojem pro testování webu, který uživatelům umožnil osvojit si preferovaný programovací jazyk.

S vydáním Selenium 2 byl Selenium RC oficiálně ukončen ve prospěch Selenium WebDriver.

Selenium WebDriver

Selenium WebDriver je nástupcem Selenium RC. Selenium WebDriver přijímá příkazy (odeslané v Selenese nebo prostřednictvím klientského rozhraní API) a odesílá je do prohlížeče. To je implementováno prostřednictvím ovladače prohlížeče specifického pro prohlížeč, který odesílá příkazy do prohlížeče a načítá výsledky. Většina ovladačů prohlížeče ve skutečnosti spouští a přistupuje k aplikaci prohlížeče (například Firefox , Google Chrome , Internet Explorer , Safari nebo Microsoft Edge ); existuje také ovladač prohlížeče HtmlUnit , který simuluje prohlížeč pomocí bezhlavého prohlížeče HtmlUnit.

Na rozdíl od Selenium 1, kde byl server Selenium nezbytný ke spouštění testů, Selenium WebDriver nepotřebuje k provádění testů speciální server. Místo toho WebDriver přímo spustí instanci prohlížeče a ovládá ji. Selenium Grid však lze s WebDriver použít k provádění testů na vzdálených systémech (viz níže). Pokud je to možné, používá WebDriver k ovládání prohlížeče funkce nativního operačního systému, nikoli příkazy JavaScript založené na prohlížeči. To obchází problémy s jemnými rozdíly mezi nativními a JavaScriptovými příkazy, včetně bezpečnostních omezení.

V praxi to znamená, že Selenium 2.0 API má výrazně méně hovorů než Selenium 1.0 API. Tam, kde se Selenium 1.0 pokoušel poskytnout bohaté rozhraní pro mnoho různých operací prohlížeče, si Selenium 2.0 klade za cíl poskytnout základní sadu stavebních bloků, ze kterých mohou vývojáři vytvářet svůj vlastní jazyk specifický pro doménu (DSL). Jeden takový DSL již existuje: projekt Watir v jazyce Ruby má bohatou historii dobrého designu. Watir-webdriver implementuje Watir API jako wrapper pro Selenium WebDriver v Ruby. Watir-webdriver je vytvořen zcela automaticky na základě specifikace WebDriver a specifikace HTML.

Na začátku roku 2012 Simon Stewart (vynálezce WebDriveru), který byl tehdy u Googlu, a David Burns z Mozilly jednali s W3C, aby se WebDriver stal internetovým standardem. V červenci 2012 byl pracovní koncept vydán a doporučení následovalo v červnu 2018. Selenium WebDriver (Selenium 2.0) je plně implementován a podporován v jazycích JavaScript ( Node.js ), Python , Ruby , Java a C# . Od roku 2021 je Selenium 4 kandidátem na vydání.

Selenová mřížka

Selenium Grid je server, který umožňuje testům používat instance webového prohlížeče spuštěné na vzdálených počítačích. Se Selenium Grid funguje jeden server jako centrální rozbočovač. Testy kontaktují rozbočovač, aby získali přístup k instancím prohlížeče. Rozbočovač má seznam serverů, které poskytují přístup k instancím prohlížeče (uzly WebDriver), a umožňuje testům používat tyto instance. Selenium Grid umožňuje souběžné spouštění testů na více počítačích a centrální správu různých verzí prohlížeče a konfigurací prohlížeče (namísto v každém jednotlivém testu).

Možnost spouštět testy na vzdálených instancích prohlížeče je užitečná pro rozložení zátěže testování na několik počítačů a spouštění testů v prohlížečích běžících na různých platformách nebo operačních systémech. Ten je zvláště užitečný v případech, kdy ne všechny prohlížeče, které mají být použity pro testování, mohou běžet na stejné platformě.

Viz také

Reference

externí odkazy