Hva er selen? Introduksjon til Selenium Automation Testing

Innholdsfortegnelse:

Anonim

Hva er selen?

Selenium er et gratis (åpen kildekode) automatisert testrammeverk som brukes til å validere webapplikasjoner på tvers av forskjellige nettlesere og plattformer. Du kan bruke flere programmeringsspråk som Java, C #, Python etc for å lage Selenium Test Scripts. Testing utført med Selen-testverktøyet blir vanligvis referert til som Selen Testing.

Selenium-programvare er ikke bare et enkelt verktøy, men en programvarepakke, og hver del imøtekommer forskjellige Selenium QA-testbehov i en organisasjon. Her er listen over verktøy

  • Selen Integrated Development Environment (IDE)
  • Selen fjernkontroll (RC)
  • WebDriver
  • Selenett
Introduksjon til selen

For øyeblikket blir Selenium RC og WebDriver slått sammen til et enkelt rammeverk for å danne Selenium 2 . Selen 1 refererer forresten til Selen RC.

Klikk her hvis videoen ikke er tilgjengelig

I denne opplæringen lærer du:

  • Hva er selen?
  • Hvem utviklet selen?
  • Samme opprinnelsespolitiske problem
  • Fødsel av selen fjernkontroll (selen RC)
  • Fødsel av selenett
  • Fødsel av Selen IDE
  • Født av WebDriver
  • Fødsel av selen 2
  • Så hvorfor heter selen?
  • Kort introduksjon Selen IDE
  • Kort introduksjon Selen fjernkontroll (Selen RC)
  • Kort introduksjon WebDriver
  • Selenett
  • Merknad om støtte for nettleser og miljø
  • Hvordan velge riktig selenverktøy for ditt behov
  • En sammenligning mellom selen og QTP (nå UFT)
  • Fordeler med QTP i forhold til selen

Hvem utviklet selen?

Siden Selen er en samling av forskjellige verktøy, hadde den også forskjellige utviklere. Nedenfor er nøkkelpersonene som ga bemerkelsesverdige bidrag til Selenium-prosjektet

Primært ble Selenium opprettet av Jason Huggins i 2004 . Han var ingeniør hos ThoughtWorks og jobbet med en webapplikasjon som krevde hyppig testing. Etter å ha innsett at den gjentatte manuelle testen av applikasjonen deres ble mer og mer ineffektiv, opprettet han et JavaScript-program som automatisk ville kontrollere nettleserens handlinger. Han kalte dette programmet som " JavaScriptTestRunner ."

Å se potensialet i denne ideen til å automatisere andre webapplikasjoner, laget han JavaScriptRunner åpen kildekode som senere ble omdøpt til Selenium Core .

Samme opprinnelsespolitiske problem

Samme Origin-policy tillater ikke JavaScript-kode tilgang til elementer fra et domene som er forskjellig fra hvor den ble lansert . Eksempel: HTML-koden på www.google.com bruker et JavaScript-program "randomScript.js". Den samme opprinnelsespolitikken tillater bare randomScript.js å ​​få tilgang til sider på google.com, for eksempel google.com/mail, google.com/login eller google.com/signup. Det kan imidlertid ikke få tilgang til sider fra forskjellige nettsteder som yahoo.com/search eller guru99.com fordi de tilhører forskjellige domener.

Dette er grunnen til at testere før Selenium RC trengte å installere lokale kopier av både Selenium Core (et JavaScript-program) og webserveren som inneholder webapplikasjonen som testes, slik at de tilhører samme domene

Fødsel av selen fjernkontroll (selen RC)

Dessverre; testere som brukte Selenium Core måtte installere hele applikasjonen som ble testet og webserveren på sine egne lokale datamaskiner på grunn av begrensningene som ble gitt av samme opprinnelsespolicy. Så en annen ThoughtWork-ingeniør, Paul Hammant , bestemte seg for å opprette en server som vil fungere som en HTTP-proxy for å "lure" nettleseren til å tro at Selenium Core og webapplikasjonen som testes kommer fra samme domene. Dette systemet ble kjent som Selenium Remote Control eller Selenium 1 .

Fødsel av selenett

Selenium Grid ble utviklet av Patrick Lightbody for å imøtekomme behovet for å minimere testutførelsestider så mye som mulig. Han kalte først systemet " Hosted QA ." Det var i stand til å ta skjermbilder av nettlesere i betydelige stadier, og også sende ut Selenium-kommandoer til forskjellige maskiner samtidig.

Fødsel av Selen IDE

Shinya Kasatani fra Japan opprettet Selenium IDE , en Firefox-utvidelse som kan automatisere nettleseren gjennom en innspillings- og avspillingsfunksjon. Han kom på denne ideen for å øke hastigheten ytterligere i å lage testsaker. Han donerte Selen IDE til Selenium Project i 2006 .

Født av WebDriver

Simon Stewart opprettet WebDriver rundt 2006 da nettlesere og webapplikasjoner ble kraftigere og mer restriktive med JavaScript-programmer som Selenium Core. Det var det første testrammeverket på tvers av plattformer som kunne kontrollere nettleseren fra operativsystemnivået.

Fødsel av selen 2


I 2008 bestemte hele Selenium Team seg for å slå sammen WebDriver og Selenium RC til å danne et kraftigere verktøy kalt Selenium 2 , med WebDriver som kjernen . For tiden er Selenium RC fortsatt under utvikling, men bare i vedlikeholdsmodus. Det meste av Selenium-prosjektets innsats er nå fokusert på Selenium 2.

Så hvorfor heter selen?

Navnet Selen kom fra en vits som Jason sprakk en gang til laget sitt. I løpet av Seleniums utvikling ble et annet automatisert testrammeverk laget av selskapet som heter Mercury Interactive (ja, selskapet som opprinnelig laget QTP før det ble kjøpt opp av HP). Siden selen er en kjent motgift mot kvikksølvforgiftning, foreslo Jason at navnet og lagkameratene tok det. Så det var slik vi måtte kalle dette rammeverket frem til i dag.

Kort introduksjon Selen IDE

Selenium Integrated Development Environment (IDE) er det enkleste rammeverket i Selenium-pakken og er det enkleste å lære . Det er et Firefox-plugin som du kan installere så enkelt som mulig med andre plugins. På grunn av sin enkelhet, bør imidlertid Selen IDE bare brukes som et prototypeverktøy . Hvis du vil lage mer avanserte testsaker, må du bruke enten Selenium RC eller WebDriver.

Kort introduksjon Selen fjernkontroll (Selen RC)

Selen RC var det viktigste testrammeverket for hele Selen-prosjektet i lang tid. Dette er det første automatiserte webtestverktøyet som tillot brukere å bruke et programmeringsspråk de foretrekker . Fra versjon 2.25.0 kan RC støtte følgende programmeringsspråk:

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Rubin

Kort introduksjon WebDriver

WebDriver viser seg å være bedre enn både Selen IDE og Selen RC i mange aspekter. Den implementerer en mer moderne og stabil tilnærming til å automatisere nettleserens handlinger. WebDriver, i motsetning til Selenium RC, stoler ikke på JavaScript for Selenium Automation Testing. Den styrer nettleseren ved å kommunisere direkte med den.

De støttede språkene er de samme som i Selenium RC.

  • Java
  • C #
  • PHP
  • Python
  • Perl
  • Rubin

Selenett

Selenium Grid er et verktøy som brukes sammen med Selenium RC for å kjøre parallelle tester på tvers av forskjellige maskiner og forskjellige nettlesere samtidig. Parallell kjøring betyr å kjøre flere tester samtidig.

Egenskaper:

  • Gjør det mulig å kjøre tester samtidig i flere nettlesere og miljøer.
  • Sparer tid enormt.
  • Benytter hub-and-nodes- konseptet. Navet fungerer som en sentral kilde til Selen-kommandoer til hver node som er koblet til den.

Merknad om støtte for nettleser og miljø

På grunn av deres arkitektoniske forskjeller støtter Selenium IDE, Selenium RC og WebDriver forskjellige sett med nettlesere og driftsmiljøer.

Selen IDE WebDriver
Nettleserstøtte Mozilla Firefox Internet Explorer versjoner 6 til 11, både 32 og 64-biters Microsoft Edge versjon 12.10240 og nyere (delvis støtter noen funksjoner under utvikling) Firefox 3.0 og over Google Chrome 12.0. og over Opera 11.5 og nyere Android - 2.3 og nyere for telefoner og nettbrett (enheter og emulatorer) iOS 3+ for telefoner (enheter og emulatorer) og 3.2+ for nettbrett (enheter og emulatorer) HtmlUnit 2.9 og over
Operativsystem Windows, Mac OS X, Linux Alle operativsystemer der nettleserne ovenfor kan kjøres.

Merk: Selenium WebDriver blir betegnet som etterfølgeren til Selenium RC, som er utfaset og offisielt kunngjort av SeleniumHQ.

Hvordan velge riktig selenverktøy for ditt behov

Verktøy Hvorfor velge?

Selen IDE

  • For å lære om konsepter om automatisert testing og selen, inkludert:
  • Selenes-kommandoer som type, åpne, clickAndWait, hevde, verifisere, etc.
  • Lokalisatorer som id, navn, xpath, css-velger osv.
  • Utføre tilpasset JavaScript-kode ved hjelp av runScript
  • Eksport av testsaker i forskjellige formater.
  • Å lage tester med liten eller ingen forkunnskaper i programmering.
  • For å lage enkle testtilfeller og testserier som du senere kan eksportere til RC eller WebDriver.
  • Å teste et nettapplikasjon bare mot Firefox og Chrome.

Selen RC

  • Å designe en test med et mer uttrykksfullt språk enn selensk
  • Å kjøre testen mot forskjellige nettlesere (unntatt HtmlUnit) på forskjellige operativsystemer.
  • Å distribuere testene dine i flere miljøer ved hjelp av Selen Grid.
  • For å teste søknaden din mot en ny nettleser som støtter JavaScript.
  • Å teste nettapplikasjoner med komplekse AJAX-baserte scenarier.

WebDriver

  • Å bruke et bestemt programmeringsspråk i utformingen av testsaken din.
  • Å teste applikasjoner som er rike på AJAX-baserte funksjoner.
  • For å utføre tester på HtmlUnit-nettleseren.
  • Å lage tilpassede testresultater.

Selenett

  • Å kjøre Selenium RC-skript i flere nettlesere og operativsystemer samtidig.
  • For å kjøre en enorm testpakke, må den fullføres så snart som mulig.

En sammenligning mellom selen og QTP (nå UFT)

Quick Test Professional (QTP) er et proprietært automatisert testverktøy som tidligere var eid av selskapet Mercury Interactive før det ble kjøpt opp av Hewlett-Packard i 2006 . Selenium Tool Suite har mange fordeler i forhold til QTP som beskrevet nedenfor -

Fordeler og fordeler med selen over QTP

Selen QTP
Åpen kildekode , gratis å bruke og gratis. Kommersiell .
Svært utvidbar Begrensede tillegg
Kan kjøre tester på tvers av forskjellige nettlesere Kan bare kjøre tester i Firefox , Internet Explorer og Chrome
Støtter forskjellige operativsystemer Kan bare brukes i Windows
Støtter mobile enheter QTP støtter mobilapptestautomatisering (iOS og Android) ved hjelp av HP-løsning kalt - HP Mobile Center
Kan utføre tester mens den leseren er minimert Må ha applikasjonen under test for å være synlig på skrivebordet
Kan utføre tester parallelt . Kan bare utføre parallelt, men bruker Quality Center som igjen er et betalt produkt.

Fordeler med QTP i forhold til selen

Fordeler med QTP i forhold til selen
QTP Selen
Kan teste både web- og skrivebordsprogrammer Kan bare teste nettapplikasjoner
Leveres med et innebygd objektlager Har ikke noe innebygd objektlager
Automatiseres raskere enn Selen fordi det er en fullverdig IDE. Automatiseres i lavere hastighet fordi den ikke har en innfødt IDE og bare tredjeparts IDE kan brukes til utvikling
Datadrevet testing er lettere å utføre fordi den har innebygde globale og lokale datatabeller . Datadrevet testing er mer tungvint siden du må stole på programmeringsspråkets evner for å sette verdier for testdataene dine
Har tilgang til kontroller i nettleseren (for eksempel favorittlinjen, adresselinjen, knappene for frem og tilbake osv.) Får ikke tilgang til elementer utenfor webapplikasjonen som testes
Gir profesjonell kundesupport Ingen offisiell brukerstøtte tilbys.
Har egen mulighet til å eksportere testdata til eksterne formater Har ingen mulighet til å eksportere kjøretidsdata til eksterne formater
Parameterization Support er bygget Parameterisering kan gjøres via programmering, men er vanskelig å implementere.
Testrapporter genereres automatisk Ingen innfødt støtte for å generere test / feilrapporter.

Selv om QTP tydeligvis har mer avanserte evner, oppveier Selen opp QTP på tre hovedområder:

  • Kostnad (fordi selen er helt gratis)
  • Fleksibilitet (på grunn av en rekke programmeringsspråk, nettlesere og plattformer den kan støtte)
  • Parallell testing (noe QTP er i stand til, men bare ved bruk av Quality Center)

Sammendrag

  • Hele Selenium Software Testing Suite består av fire komponenter:
  • Selenium IDE, et Firefox-tillegg som du bare kan bruke til å lage relativt enkle testtilfeller og testserier.
  • Selenium Remote Control, også kjent som Selenium 1, som er det første Selen-verktøyet som tillot brukere å bruke programmeringsspråk for å lage komplekse tester.
  • WebDriver, det nyere gjennombruddet som gjør at testskriptene dine kan kommunisere direkte til nettleseren, og dermed kontrollere det fra OS-nivå.
  • Selenium Grid er også et verktøy som brukes med Selenium RC for å utføre parallelle tester på tvers av forskjellige nettlesere og operativsystemer.
  • Selen RC og WebDriver ble slått sammen for å danne Selenium 2.
  • Selen er mer fordelaktig enn QTP når det gjelder kostnader og fleksibilitet. Det lar deg også kjøre tester parallelt, i motsetning til i QTP hvor du bare har lov til å kjøre tester sekvensielt.