Selen (software) - Selenium (software)
| Stabil udgivelse | 3.141.59 / 19. november 2018
|
|---|---|
| Depot | |
| Skrevet i | Selen server: Java ; Selenium WebDriver (fungerer uden Selenium Server), officiel support: JavaScript ( Node.js ), Python , Ruby , Java eller C# |
| Operativ system | På tværs af platforme |
| Type | Softwaretest rammer for web-applikationer |
| Licens | Apache -licens 2.0 |
| Internet side |
selen |
Selen er et open-source automatiseret afprøvning ramme for web-applikationer . Selenium giver et afspilningsværktøj til redigering af funktionelle tests uden behov for at lære et testscript -sprog (Selenium IDE). Det giver også et testdomænespecifikt sprog (selenesisk) til at skrive tests på en række populære programmeringssprog, herunder JavaScript ( Node.js ), C# , Groovy , Java , Perl , PHP , Python , Ruby og Scala . Testene kan derefter køre mod de fleste moderne webbrowsere . Selen kører på Windows , Linux og macOS . Det er open source-software udgivet under Apache License 2.0 .
Historie
Selen blev oprindeligt udviklet af Jason Huggins i 2004 som et internt værktøj hos ThoughtWorks . Huggins fik senere selskab af andre programmører og testere på ThoughtWorks, før Paul Hammant sluttede sig til teamet og styrede udviklingen af den anden driftsmåde, der senere ville blive "Selenium Remote Control" (RC). Værktøjet var åbent det år.
I 2005 kom Dan Fabulich og Nelson Sproul (med hjælp fra Pat Lightbody) med et tilbud om at acceptere en række patches, der ville forvandle Selenium-RC til det, det blev bedst kendt for. I samme møde ville styringen af Selen som et projekt fortsætte som et udvalg, hvor Huggins og Hammant var repræsentanter for ThoughtWorks.
I 2007 sluttede Huggins sig til Google. Sammen med andre som Jennifer Bevan fortsatte han med udviklingen og stabiliseringen af Selenium RC. Samtidig udviklede Simon Stewart hos ThoughtWorks et overlegen browserautomatiseringsværktøj kaldet WebDriver. I 2009, efter et møde mellem udviklerne på Google Test Automation Conference, blev det besluttet at fusionere de to projekter og kalde det nye projekt Selenium WebDriver, eller Selenium 2.0.
I 2008 lavede Philippe Hanrigou (dengang hos ThoughtWorks) "Selenium Grid", som giver et knudepunkt, der gør det muligt at køre flere selen -test samtidigt på et vilkårligt antal lokale eller fjerntliggende systemer, og minimerer dermed testudførelsestiden. Grid tilbød, som open source, en lignende kapacitet som den interne/private Google -cloud til Selenium RC. Pat Lightbody havde allerede lavet en privat sky til "HostedQA", som han solgte videre til Gomez, Inc.
Navnet Selen kommer fra en joke lavet af Huggins i en e -mail, der hånede en konkurrent ved navn Mercury og sagde, at du kan helbrede kviksølvforgiftning ved at tage selentilskud. De andre, der modtog e -mailen, tog navnet og løb med det.
Komponenter
Selen er sammensat af flere komponenter med hver tage på en særlig rolle i medvirken til udvikling af web-applikation test automatisering .
Selen IDE
Selenium IDE er et komplet integreret udviklingsmiljø (IDE) til selentest. Det er implementeret som en Firefox-tilføjelse og som en Chrome-udvidelse . Det giver mulighed for registrering, redigering og fejlfinding af funktionelle tests. Det var tidligere kendt som Selenium Recorder. Selenium-IDE blev oprindeligt skabt af Shinya Kasatani og doneret til Selen-projektet i 2006. Selenium IDE var tidligere lidt vedligeholdt. Selen IDE begyndte at blive vedligeholdt aktivt i 2018.
Scripts registreres og redigeres muligvis automatisk manuelt, hvilket giver understøttelse af autofuldførelse og mulighed for hurtigt at flytte kommandoer rundt. Scripts er indspillet på selenese , et specielt testskriptsprog til selen. Selenese giver kommandoer til at udføre handlinger i en browser (klik på et link, vælg en mulighed) og til at hente data fra de resulterende sider.
2.x -versionen af Selenium IDE til Firefox stoppede med at fungere efter Firefox 55 -opgraderingen og er blevet erstattet af Selenium IDE 3.x.
Ud over det officielle Selenium IDE-projekt opretholdes aktivt to alternative Selenium IDE-browserudvidelser: Kantu ( Open-Source GPL- licens) og Katalon Recorder ( Open-Source ).
Selenium -klient -API
Som et alternativ til at skrive test på selenese kan tests også skrives på forskellige programmeringssprog. Disse test kommunikerer derefter med Selenium ved at kalde metoder i Selenium Client API. Selenium tilbyder i øjeblikket klient -API'er til Java , C# , Ruby , JavaScript , R og Python .
Med Selenium 2 blev der introduceret en ny Client API (med WebDriver som den centrale komponent). Den gamle API (ved hjælp af klasse Selenium ) understøttes dog stadig.
Selen fjernbetjening
Selenium Remote Control (RC) er en server, skrevet i Java , der accepterer kommandoer til browseren via HTTP . RC gør det muligt at skrive automatiserede test til en webapplikation i ethvert programmeringssprog, hvilket muliggør en bedre integration af Selenium i eksisterende enhedstestrammer. For at gøre det lettere at skrive test tilbyder Selenium -projekt i øjeblikket klientdrivere til PHP , Python , Ruby , .NET , Perl og Java . Java -driveren kan også bruges med JavaScript (via Rhino -motoren). En forekomst af selen RC -server er nødvendig for at starte html -testcase - hvilket betyder, at porten skal være forskellig for hvert parallelkørsel. Men for Java/PHP -testcase skal kun én Selenium RC -instans køre løbende.
Selen fjernbetjening var en refaktorering af Driven Selenium eller Selenium B designet af Paul Hammant, krediteret Jason som medstifter af Selenium. Den originale version lancerede en proces for den pågældende browser direkte fra testsproget i Java, .NET, Python eller Ruby. Trådprotokollen (kaldet 'Selenese' på sin tid) blev genimplementeret i hver sprogport. Efter refaktoren af Dan Fabulich og Nelson Sproul (med hjælp fra Pat Lightbody) var der en mellemliggende dæmonproces mellem køreprøvescriptet og browseren. Fordelene omfattede muligheden for at drive eksterne browsere og det reducerede behov for at overføre hver kodelinje til et stadig større sprog. Selen fjernbetjening overtog fuldstændig fra den kørte linje Selenium i 2006. Browsermønsteret for 'Driven'/'B' og 'RC' var svar/forespørgsel, som efterfølgende blev kendt som Comet .
Selenium RC fungerede som flagskibstestramme for hele selenprojektet i lang tid. Og betydeligt er Selenium RC det første og fremmest automatiserede webtestværktøj, der gjorde det muligt for brugerne at anvende deres foretrukne programmeringssprog.
Med udgivelsen af Selenium 2 er Selenium RC officielt blevet forældet til fordel for Selenium WebDriver.
Selenium WebDriver
Selenium WebDriver er efterfølgeren til Selenium RC. Selenium WebDriver accepterer kommandoer (sendt på selenese eller via en klient -API) og sender dem til en browser. Dette implementeres gennem en browserspecifik browser-driver, som sender kommandoer til en browser og henter resultater. De fleste browserdrivere starter faktisk og får adgang til et browserprogram (f.eks. Firefox , Google Chrome , Internet Explorer , Safari eller Microsoft Edge ); der er også en HtmlUnit browser driver, som simulerer en browser ved hjælp af den hovedløse browser HtmlUnit.
I modsætning til i Selenium 1, hvor Selenium -serveren var nødvendig for at køre tests, har Selenium WebDriver ikke brug for en særlig server for at udføre tests. I stedet starter WebDriver direkte en browserforekomst og kontrollerer den. Selenium Grid kan dog bruges med WebDriver til at udføre test på eksterne systemer (se nedenfor). Hvor det er muligt, bruger WebDriver indbygget operativsystemniveau funktionalitet frem for browserbaserede JavaScript-kommandoer til at drive browseren. Dette omgår problemer med subtile forskelle mellem native- og JavaScript -kommandoer, herunder sikkerhedsbegrænsninger.
I praksis betyder det, at Selenium 2.0 API har betydeligt færre opkald end Selenium 1.0 API. Hvor Selenium 1.0 forsøgte at levere en rig grænseflade til mange forskellige browseroperationer, har Selenium 2.0 til formål at levere et grundlæggende sæt byggesten, hvorfra udviklere kan oprette deres eget domænespecifikke sprog (DSL). En sådan DSL findes allerede: Watir -projektet på Ruby -sproget har en rig historie med godt design. Watir-webdriver implementerer Watir API som en indpakning til Selenium WebDriver i Ruby. Watir-webdriver oprettes helt automatisk baseret på WebDriver-specifikationen og HTML-specifikationen.
I begyndelsen af 2012 forhandlede Simon Stewart (opfinder af WebDriver), som dengang var hos Google, og David Burns fra Mozilla forhandlede med W3C om at gøre WebDriver til en internetstandard. I juli 2012 blev arbejdsudkastet frigivet, og anbefalingen fulgt i juni 2018. Selenium WebDriver (Selenium 2.0) er fuldt implementeret og understøttet i JavaScript ( Node.js ), Python , Ruby , Java og C# . Fra 2021 er Selenium 4 en frigivelseskandidat.
Selen gitter
Selenium Grid er en server, der tillader tests at bruge webbrowser -forekomster, der kører på eksterne maskiner. Med Selenium Grid fungerer en server som det centrale hub. Test kontakter hub'en for at få adgang til browserforekomster. Navet har en liste over servere, der giver adgang til browserforekomster (WebDriver -noder), og lader tests bruge disse forekomster. Selenium Grid gør det muligt at køre tests parallelt på flere maskiner og administrere forskellige browserversioner og browserkonfigurationer centralt (i stedet for i hver enkelt test).
Muligheden for at køre test på eksterne browserforekomster er nyttig til at sprede belastningen af test på flere maskiner og til at køre tests i browsere, der kører på forskellige platforme eller operativsystemer. Sidstnævnte er især nyttig i tilfælde, hvor ikke alle browsere, der skal bruges til test, kan køre på den samme platform.
Se også
- Appium , mobil og desktop apps automatisering ved hjælp af WebDriver
- Acceptstest
- Capybara (software)
- Givet-hvornår-derefter
- Liste over webtestværktøjer
- MediaWiki Selen
- Regressionstest
- Robotramme