Selen

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 maj 2021; kontroller kräver 6 redigeringar .
selen
Sorts mjukvarutestning
Skrivet i Java
Operativ system Microsoft Windows , GNU / Linux , Apple MacOS
senaste versionen 4.5.0 (28 september 2022 ) ( 2022-09-28 )
Licens Apache-licens 2.0
Hemsida selenium.dev

Selenium WebDriver  är ett verktyg för att automatisera webbläsaråtgärder. I de flesta fall används den för att testa webbapplikationer , men är inte begränsad till detta. I synnerhet kan den användas för att lösa rutinmässiga uppgifter för webbplatsadministration eller regelbundet ta emot data från olika källor (sajter). Sällan använd, men viktig.

Historik

I juni 2004 [1] skrev utvecklaren Jason Huggins ett JavaScript- bibliotek som heter "JavaScriptTestRunner" (nu känt som "Selenium Core") för att köra tester i webbläsaren . Vid den tiden arbetade Huggins på ThoughtWorks- kontoret i Chicago , och det skapade biblioteket användes för att testa en webbplats skriven i Python med hjälp av innehållshanteringssystemet (CMS) Plone . Huggins fick hjälp av Paul Gross och Jie Tina Wang från ThoughtWorks. Senare anslöt sig andra utvecklare och testare av företaget till utvecklingen.

Namnet "Selenium" ("selenium" på engelska - selenium ) började användas efter att Huggins skämtade i ett av sina e-postmeddelanden (e-post) om ett konkurrerande projekt som heter "Mercury Interactive QuickTest Professional" ("kvicksilver" på översatt från engelska - kvicksilver ), skriver att du kan bli frisk från kvicksilverförgiftning genom att ta selen med mat [2] .

Paul Hammant (anställd på ThoughtWorks) föreslog att öppna källkoden för Selenium Core-biblioteket, ge möjligheten att skriva skript i vilket programmeringsspråk som helst och köra skript på distans. För att implementera det senare var det nödvändigt att kringgå begränsningarna som implementerades av webbläsaren för att följa samma ursprungspolicy . Aslak Hellesoy och Mike Melia från ThoughtWorks skrev en sida omskrivare för att kringgå regeln. Paul Hammant skrev Java -programmen som implementerar servern och klienten. Aslak Hellesoy och Obie Fernandez skrev om Ruby -klienten som ett bibliotek.

ThoughtWorks, som har kontor runt om i världen, började använda Selen i kommersiella projekt. Utvecklingen fortsatte av Mike Williams, Darrell Deboer och Darren Cotterill.

Utvecklare från BEA Systems, Inc., Dan Fabulich och Nelson Sproul skrev om serverkoden och använde kod från Jetty -projektet (HTTP-server i Java) för att implementera HTTP -proxyn. Den nya servern blev känd som "Selenium Remote Control" eller "Selenium RC". Selenium RC fortsattes av Pat Lightbody, Dan Fabulich och Nelson Sproul.

I december 2004 öppnades källkoden för Selenium-projektet.

2005, vid ett utvecklarmöte, föreslog Dan Fabulich och Nelson Sproul (med hjälp av Pat Lightbody) att anta en uppsättning patchar som skulle förvandla "Selenium RC" till den produkt som idag kallas "Selenium 1.0". Vid samma möte tilldelades projektledningen en kommitté, där utvecklarna Jason Huggins och Paul Hammant representerade ThoughtWorks i den kommitté som bildades.

Sommaren 2006 utvecklades Selenium Core-biblioteket av ett utvecklingsteam bestående av Wang Peng Chao, Huang Liang, Xiong Jie och andra, ledd av Mike Williams på ThoughWorks kontor i Kina. Teamet har implementerat funktionerna som är tillgängliga i Selenium 1.0.

2007 gick Jason Huggins med i Google, blev medlem i det (då hemliga) Selenium-supportteamet och fortsatte att arbeta på Selenium RC med andra utvecklare (som Jennifer Bevan). Googles representanter tillkännagav först användningen av selen vid Google Test Automation Conference (GTAC-2007) [3] som hölls i New York den 23-24 augusti 2007. Senare fick Jennifer Bevan möjligheten att göra ändringar i Selenium-projektets kod.

Haw-bin Chai från Chicago skapade patchar som lade till XPath -funktionalitet och implementerade en tillägg som heter "UI Element", varefter han blev inbjuden till Seleniums utvecklingsteam 2007.

Simon Stewart, då på ThoughtWorks, utvecklade ett verktyg som heter WebDriver. WebDriver lanserade webbläsare och arbetade med dem, även om det inte var begränsat av funktionerna som JavaScript tillhandahåller, därför var det överlägset i egenskaper jämfört med Selenium Core. Men att stödja varje webbläsare krävde att skriva kod. 2007 presenterade Simon Stewart sin utveckling på GTAC-2007-konferensen. 2009 träffades utvecklarna på GTAC-2009-konferensen och beslutade att slå samman kodbaserna för Selenium- och WebDriver-projekten. Från 2007-2012 arbetade Simon Stewart på Google och senare på Facebook och ägnade en del av sin tid åt att göra WebDriver kompatibel med Selenium RC. Den nya produkten fick namnet "Selenium WebDriver" eller "Selenium 2.0" [4] .

2008 skapade Philippe Hanrigou, då på ThoughtWorks, projektet Selenium Grid. Selenium Grid är ett projekt med öppen källkod som tillhandahåller program utformade för att köra Selenium RC-skript på flera datorer samtidigt. Olika skript kördes på flera datorer för att minska exekveringstiden. Möjligheterna hos "Selenium Grid" sammanföll med kapaciteten hos en liknande, men sluten och intern, produkt från Google. Pat Lightbody ägde en webbplats som heter "Hosted QA" som låter dig få skärmdumpar av webbsidor , sålde webbplatsen till Gomez, Inc.

Shinya Kasatani från Japan har skapat ett tillägg för webbläsaren Firefox som heter "Selenium IDE" som låter dig spela in, spara och spela upp tester. Förlängningen var inte begränsad av samma ursprungspolicy .

Allmän information

Selenium WebDriver är i första hand en uppsättning bibliotek för olika programmeringsspråk. Dessa bibliotek används för att skicka HTTP- förfrågningar till drivrutinen (därav namnet WebDriver), med hjälp av protokollet JsonWireProtocol [5] , som indikerar den åtgärd som webbläsaren ska utföra under den aktuella sessionen. Exempel på sådana kommandon kan vara kommandon för att hitta element med hjälp av en lokaliserare, följa länkar, tolka texten på en sida/element, trycka på knappar eller följa länkar på en webbsida . Det finns både officiella bindningar av biblioteket till populära programmeringsspråk och amatörspråk. Till exempel är PHP- språkstödsbiblioteket inte officiellt och utvecklas av Facebook [6] .

Selenium-projektet och communityn stöder webbläsarna Microsoft Internet Explorer , Google Chrome , Mozilla Suite och Mozilla Firefox som kör Microsoft Windows , Linux och Apple Macintosh .

Selen, från och med version 3.x, började kräva en separat drivrutin för att fungera med webbläsaren Firefox - GeckoDriver , tidigare kallad Marionette [7]

Som en del av Selenium-projektet släpps Selenium IDE- verktyget - ett tillägg till webbläsarna Firefox och Chrome , som är ett Selenium-bibliotek med ett grafiskt gränssnitt (GUI) byggt med XUL . Tillägget låter dig spela in, spara och spela skript för att testa webbsidor. Skript sparas i HTML -format som en tabell.

Plattformar som stöds

Lista över webbläsare som stöds av Selenium-projektutvecklarna och/eller communityn [8] :

Webbläsare Operativ system Utvecklaren
Chromium / Google Chrome Windows / macOS / Linux Google
Firefox Windows/macOS/Linux Mozilla
Microsoft Edge Windows 10 Microsoft
Internet Explorer Windows Selenprojekt
safari macOS El Capitan och nyare Äpple
Opera Windows/macOS/Linux Opera

Det är också möjligt att använda med webbläsare utan ett grafiskt gränssnitt  - HtmlUnit och PhantomJS , även om det senare inte rekommenderas, eftersom denna produkt inte har uppdaterats och stöds av sin utvecklare sedan 2017 och motsvarande funktionalitet har funnits i webbläsaren sedan dess Google Chrome [8] .

Se även

Anteckningar

  1. Selen Historia  . selenium.dev. Hämtad 19 december 2019. Arkiverad från originalet 19 december 2019.
  2. Crill, Paul. Öppen källkod Selenium webbapp testsvit för att stödja iPhone och Android  // InfoWorld  :  magazine. - 2011. - 6 april.
  3. ↑ Andra årliga Google Test Automation Conference (7 mars 2007). Hämtad 1 september 2016. Arkiverad från originalet 13 maj 2016.
  4. Selenprojektet . NewCircle. Hämtad 29 juni 2014. Arkiverad från originalet 12 augusti 2014.
  5. selenium: A browser automation framework and ecosystem , 2017-12-31 , < https://github.com/SeleniumHQ/selenium > Arkiverad 19 februari 2020 på Wayback Machine 
  6. php-webdriver: En php-klient för webdriver . — 2017-06-17. Arkiverad från originalet den 17 maj 2017.
  7. Marionett  . _ Mozillas utvecklarnätverk. Hämtad 19 juni 2017. Arkiverad från originalet 12 september 2017.
  8. 1 2 Selenium Browser Automation Project - Drivrutinskrav  . Hämtad 8 februari 2021. Arkiverad från originalet 4 mars 2021.

Länkar