Mikä on Selenium? Johdanto opetusohjelma

⚡ Älykäs yhteenveto

Selenium on ilmainen, avoimen lähdekoodin automatisoitu testauskehys, joka on suunniteltu validoimaan verkkosovelluksia eri selaimissa ja alustoilla useilla ohjelmointikielillä. Se mahdollistaa vankan, tehokkaan ja skaalautuvan testiautomaation nykyaikaisille laadunvarmistuskäytännöille.

  • Pääperiaate: Selenium helpottaa verkkosovellusten automaattista validointia erilaisissa selaimissa ja käyttöjärjestelmissä, tukien kieliä, kuten Java, C#, Python, Ja enemmän.
  • Työkalupaketin rakenne: Selenium sisältää neljä pääkomponenttia – IDE, Remote Control, WebDriver ja Grid – joista jokainen vastaa erilaisiin automaatioihin liittyviin tarpeisiin.
  • IDE ja prototyyppien luonti: Selenium IDE on selainlaajennus nopeaan tapausten luomiseen ja prototyyppien luomiseen, mutta se sopii parhaiten yksinkertaisiin testiskenaarioihin.
  • Kaukosäätimen kehitys: Selenium RC, joka on nyt ylläpitotilassa, oli ensimmäinen kehys, joka mahdollisti testiskriptien kirjoittamisen useilla kielillä ja ratkaisi selainkäytäntöjen rajoitukset.
  • WebDriverin toteutus: WebDriver kommunikoi suoraan selainten kanssa tarjoten käyttöjärjestelmätason hallinnan ja erinomaisen vakauden monimutkaiselle automaatiolle.
  • Rinnakkaisuuden ruudukko: Selenium Grid mahdollistaa testien rinnakkaissuorituksen useilla koneilla ja selaimilla, mikä lyhentää merkittävästi testisyklin kestoa.
  • Selainten ja alustojen välinen tuki: Selenium tukee laajaa valikoimaa selaimia ja käyttöjärjestelmiä, mikä tarjoaa vertaansa vailla olevaa joustavuutta web-laadunvarmistukseen.
  • Tosimaailman vaikutus: Joukkueet käyttävät Selenium nopeuttaa julkaisusyklejä, vähentää manuaalista testausta ja varmistaa yhtenäinen käyttökokemus eri selaimissa, todistetuin tuloksin SaaS-, CI/CD- ja ominaisuuksien toimituksessa.

mikä on seleeni

Mikä on Selenium?

Selenium on ilmainen (avoimen lähdekoodin) automaattinen testauskehys, jota käytetään verkkosovellusten validointiin eri selaimilla ja alustoilla. Voit käyttää useita ohjelmointikieliä, kuten Java, C#, Pythontms Selenium Testaa komentosarjoja. Testaus tehty käyttämällä Selenium testaustyökalua kutsutaan yleensä nimellä Selenium Testaus.

Asiantuntijatietoja

Vältä kiinteiden lepotilaviiveiden käyttöä testeissäsi. Käytä sen sijaan eksplisiittisiä odotusaikoja (kuten WebDriverWait) elementtien latautumisen odottamiseen. Tämä tekee skripteistäsi luotettavampia ja nopeampia, koska ne reagoivat dynaamisesti todellisiin sivuolosuhteisiin – tämä on tärkeä paras käytäntö opiskelijoille kaikkialla, alkaen… Selenium"

— Himanshu Sheth, Selenium Asiantuntija

👉 Ilmoittaudu ilmaiseen live-lähetykseen Selenium Testausprojekti

Selenium Tool Suite

Selenium Ohjelmisto ei ole vain yksi työkalu, vaan ohjelmistosarja, jonka jokainen osa palvelee erilaisia Selenium Organisaation QA-testauksen tarpeet. Tässä on luettelo työkaluista

  • Selenium Integroitu kehitysympäristö (IDE)
  • Selenium Kaukosäädin (RC)
  • web-ajuri
  • Selenium ruudukko

Selenium Tool Suite

Tällä hetkellä, Selenium RC ja WebDriver yhdistetään yhdeksi kehykseksi Selenium 2. Selenium 1 muuten viittaa Selenium RC.

Opetusohjelmavideot Selenium

Napauta täältä jos video ei ole saatavilla

Kuka kehitti Selenium?

Koska Selenium on kokoelma erilaisia ​​työkaluja, ja sillä oli myös erilaisia ​​kehittäjiä. Alla on avainhenkilöt, jotka ovat antaneet merkittävän panoksen Selenium projekti

kehitettiin Selenium

Ensisijaisesti Selenium oli loi Jason Huggins vuonna 2004ThoughtWorksin insinöörinä hän työskenteli verkkosovelluksen parissa, joka vaati usein testausta. Huomattuaan, että heidän sovelluksensa toistuva manuaalinen testaus oli käymässä yhä tehottomammaksi, hän loi... JavaKäsikirjoitus ohjelma, joka automaattisesti ohjaisi selaimen toimintoja. Hän nimesi tämän ohjelman "JavaScriptTestRunner.”

Hän näki tämän idean potentiaalin automatisoida muita verkkosovelluksia JavaScriptRunner avoimen lähdekoodin, joka myöhemmin nimettiin uudelleen Selenium Ydin. Jos olet kiinnostunut tutkimaan muita verkkosovellusten testausvaihtoehtoja, katso nämä Selenium vaihtoehdot.

Sama alkuperäpolitiikka

Sama alkuperäpolitiikka kieltää JavaSkriptikoodia ei voi käyttää elementeistä, jotka ovat eri verkkotunnuksesta kuin missä se käynnistettiin. Esimerkiksi www.google.com-sivuston HTML-koodi käyttää JavaSkriptiohjelma “randomScript.js”. Sama alkuperäkäytäntö sallii randomScript.js:n käyttää vain google.com-sivuston sivuja, kuten google.com/mail, google.com/login tai google.com/signup. Se ei kuitenkaan voi käyttää eri sivustojen sivuja, kuten yahoo.com/search tai guru99.com, koska ne kuuluvat eri verkkotunnuksiin.

Sama alkuperäpolitiikka

Tämä on syy siihen, miksi ennen Selenium RC, testaajia tarvitaan asentamaan paikalliset kopiot molemmista Selenium Ydin (a Javaskriptiohjelma) ja testattavan verkkosovelluksen sisältävä verkkopalvelin, joten ne kuuluisivat samaan verkkotunnukseen

Syntymä Selenium Kaukosäädin (Selenium RC)

Paul Hammant

Valitettavasti testaajat käyttävät Selenium Coren täytyi asentaa koko testattava sovellus ja web-palvelin omille paikallisille tietokoneilleen ohjelman asettamien rajoitusten vuoksi. saman alkuperän käytäntöJoten toinen ThoughtWorksin insinööri, Paul Hammant, päätti luoda palvelimen, joka toimisi HTTP-välityspalvelimena "huijatakseen" selaimen uskomaan, että Selenium Core ja testattava verkkosovellus tulevat samasta toimialueesta. Tämä järjestelmä tuli tunnetuksi nimellä Selenium Kaukosäädin or Selenium 1.

Syntymä Selenium ruudukko

Patrick Lightbody

Selenium Gridin on kehittänyt Patrick Lightbody vastatakseen tarpeeseen minimoida testien suoritusajat mahdollisimman paljon. Hän kutsui järjestelmää aluksi "Isännöity laadunvarmistus." Se pystyi ottamaan selaimen kuvakaappauksia merkittävissä vaiheissa ja myös lähettää Selenium komentoja eri koneille samanaikaisesti.

Syntymä Selenium IDE

Shinya Kasatani

Shinya Kasatani Japanin luotu Selenium IDEtai Firefox ja Chrome-laajennus, joka voi automatisoida selaimen tallennus- ja toistotoiminnon avulla. Hän keksi tämän idean testitapausten luomisen nopeuden lisäämiseksi entisestään. Hän lahjoitti Selenium IDE Selenium Projekti sisään 2006.

WebDriverin syntymä

Simon Stewart

Simon Stewart luotu WebDriver noin 2006 kun selaimet ja verkkosovellukset olivat tulossa tehokkaammiksi ja rajoittavammiksi JavaKäsikirjoitusohjelmat, kuten Selenium Ydin. Se oli ensimmäinen alustariippumaton testausjärjestelmä, joka pystyi hallitsemaan selainta käyttöjärjestelmätasolla.

Syntymä Selenium 2

In 2008, Koko Selenium Tiimi päätti yhdistää WebDriverin ja Selenium RC muodostaakseen tehokkaamman työkalun nimeltä Selenium 2, kanssa WebDriver on ydin. Tällä hetkellä, Selenium RC:tä kehitetään edelleen, mutta vain ylläpitotilassa. Suurin osa Selenium Hankkeen ponnistelut ovat nyt keskittyneet Selenium 2.

Joten, miksi nimi Selenium?

Nimi Selenium tuli vitsistä, jonka Jason iski kerran tiimilleen. Aikana Seleniumn kehitystä, toinen automatisoitu testaus kehyksen teki tunnetusti yritys nimeltä Mercury Interaktiivinen (kyllä, yritys, joka alun perin valmisti QTP:tä ennen kuin HP osti sen). Selenium on tunnettu vastalääke Mercury myrkytys, Jason ehdotti tätä nimeä ja hänen joukkuetoverinsa ottivat sen. Joten näin meidän on kutsuttava tätä kehystä nykypäivään asti.

Miksi Nimi Selenium

Mikä on Selenium IDE?

Selenium Integrated Development Environment (IDE) on yksinkertaisin kehys vuonna Selenium sviitti ja on helpoin oppia. Se on a Chrome ja Firefox kytkeä jonka voit asentaa yhtä helposti kuin muiden lisäosien kanssa. Kuitenkin sen yksinkertaisuuden vuoksi Selenium IDE:tä tulee käyttää vain a prototyyppityökalu. Jos haluat luoda kehittyneempiä testitapauksia, sinun on käytettävä jompaakumpaa Selenium RC tai WebDriver.

Selenium IDE

Mikä on Selenium Kaukosäädin (Selenium RC)?

Selenium RC oli lippulaivatestauskehys kokonaisuudesta Selenium projektia pitkäksi aikaa. Tämä on ensimmäinen automatisoitu verkkotestaus työkalu avulla käyttäjät voivat käyttää haluamaansa ohjelmointikieltä. Versiosta 2.25.0 alkaen RC voi tukea seuraavia ohjelmointikieliä:

Selenium Kaukosäädin (Selenium RC)

Mikä on WebDriver?

WebDriver osoittautuu paremmaksi kuin Selenium IDE ja Selenium RC monessa suhteessa. Se toteuttaa nykyaikaisemman ja vakaamman lähestymistavan selaimen toimintojen automatisoinnissa. WebDriver, toisin kuin Selenium RC, ei luota JavaKäsikirjoitus Selenium Automaatiotestaus. Se ohjaa selainta kommunikoimalla suoraan sen kanssa.

Tuetut kielet ovat samat kuin kielet Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubiini

Web-ohjain

Mikä on Selenium Verkko?

Selenium Grid on työkalu käytetään yhdessä Selenium RC juoksemaan rinnakkaiset testit eri koneilla ja eri selaimilla samanaikaisesti. Rinnakkaissuoritus tarkoittaa useiden testien suorittamista kerralla.

Ominaisuudet:

  • mahdollistaa testien samanaikainen suorittaminen in useita selaimia ja ympäristöjä.
  • Säästää aikaa valtavasti.
  • Hyödyntää keskitin ja solmut konsepti. Keskitin toimii keskeisenä lähteenä Selenium komennot jokaiselle siihen yhdistetylle solmulle.

Selenium Selain- ja ympäristötuki

Niiden arkkitehtonisten erojen vuoksi Selenium SDI, Selenium RC ja WebDriver tukevat erilaisia ​​selaimia ja käyttöympäristöjä.

  Selenium IDE web-ajuri
Selaintuki mozilla Firefox ja Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ ja Edge
Safari,
HtmlUnit ja PhantomUnit
Operating System Windows, Mac OS X, Linux Kaikki käyttöjärjestelmät, joissa yllä olevat selaimet voivat toimia.

Huomautus: Opera Kuljettaja ei enää toimi

Kuinka valita oikea Selenium Työkalu tarpeisiisi

Työkalu Miksi valita?
Selenium IDE
  • Opi automatisoidun testauksen käsitteistä ja Selenium, Mukaan lukien:
  • Seleeniset komennot, kuten kirjoita, avaa, napsauta ja odota, vahvista, vahvista jne.
  • Paikarit, kuten id, nimi, xpath, css-valitsin jne.
  • Toteutus räätälöitynä JavaSkriptikoodi runScriptillä
  • Testitapausten vienti eri muodoissa.
  • Luoda testejä, joilla on vähän tai ei lainkaan aiempaa ohjelmointitietoa.
  • Voit luoda yksinkertaisia ​​testitapauksia ja testipaketteja, jotka voit viedä myöhemmin RC- tai WebDriveriin.
  • Verkkosovelluksen testaamiseen Firefox ja vain Chrome.
Selenium RC
  • Suunnittele testi käyttämällä ilmaisuvoimaisempaa kieltä kuin seleenia
  • Testin suorittaminen eri selaimilla (paitsi HtmlUnitilla) eri käyttöjärjestelmissä.
  • Voit ottaa testit käyttöön useissa ympäristöissä käyttämällä Selenium Ruudukko.
  • Testaaksesi sovelluksesi uuteen selaimeen, joka tukee JavaSkripti.
  • Verkkosovellusten testaamiseen monimutkaisilla AJAX-pohjaisilla skenaarioilla.
web-ajuri
  • Tietyn ohjelmointikielen käyttäminen testitapauksen suunnittelussa.
  • Testaa sovelluksia, joissa on runsaasti AJAX-pohjaisia ​​toimintoja.
  • Testien suorittaminen HtmlUnit-selaimella.
  • Voit luoda mukautettuja testituloksia.
Selenium ruudukko
  • Ajaaksesi sinun Selenium RC-komentosarjat useissa selaimissa ja käyttöjärjestelmissä samanaikaisesti.
  • Suorittaa valtava testipaketti, joka on saatava valmiiksi mahdollisimman lyhyessä ajassa.

Tosimaailman tapaustutkimukset

🔍 Case-tutkimus 1: SaaS-hallintapaneelin selainten välinen yhteensopivuus

skenaario

Palveluna tarjottavia ohjelmistoja tarjoava yritys valmisteli julkaisemaan analytiikkanäkymän, jonka piti toimia yhdenmukaisesti kaikissa nykyaikaisissa selaimissa (Chrome, Firefox, Edge, Safari).

Haaste

Kunkin selaimen manuaalinen testaus oli aikaa vievää, virhealtista eikä pysynyt nopeiden kehitysiteraatioiden vauhdissa.

Ratkaisu, jossa on Selenium

Laadunvarmistusinsinööri loi Selenium ruudukko asetukset saman testipaketin suorittamiseksi samanaikaisesti useilla selaimilla ja käyttöjärjestelmäyhdistelmillä. Testit kirjoitettiin Python käyttämällä Selenium WebDriver toimintoihin, kuten kirjautumiseen, kaavioiden suodattamiseen ja datan vientiin.

Tulos

  • Regressioaika lyheni 80 %.
  • Löysin selainkohtaisia ​​renderöintivirheitä varhaisessa vaiheessa (esim. väärin kohdistetut kaaviot IE:ssä).
  • Ylläpiti yhtenäistä kojelaudan käyttökokemusta selainmatriisissa ilman ylimääräisiä manuaalisia työkierroksia.

⚙️ Tapaustutkimus 2: CI/CD-integraatio verkkosovellukseen Selenium + TestNG

skenaario

Keskikokoinen web-kehitysyritys luottaa Jenkinsiä käyttävään CI/CD-prosessiin. Heidän piti varmistaa, että käyttäjäpolut toimivat jokaisen koodimuutoksen jälkeen.

Haaste

Uudet koontiversiot katkaisivat ajoittain käyttäjävirtoja – kirjautumista, lomakkeiden lähettämistä – ja välttyivät havaitsemiselta manuaaliseen testaukseen päivän lopuksi.

Ratkaisu, jossa on Selenium

Testaaja toteutti Java-Pohjainen Selenium WebDriver-paketti integroitu TestNGTestit kattoivat todennuksen, profiilipäivitykset ja hakutoiminnot. Nämä suoritettiin jokaisella Jenkins-koontiversiolla hyödyntäen rinnakkaista suoritusta ja selainparametrointia.

Tulos

  • Saavutettiin virheetön palaute: rikkinäiset työnkulut merkittiin välittömästi.
  • Vähensi käyttöönoton jälkeisiä virheitä yli 60 %.
  • Mahdollisti kehittäjille ongelmien ratkaisemisen ennen kuin ne etenivät laadunvarmistukseen.

🚀 Case Study 3: Matkailutietoa keräävän sivuston ominaisuuksien julkaisun nopeuttaminen

skenaario

Matkailusivustojen aggregaattorialustan piti julkaista uudistettu lentovarausominaisuus. Manuaaliset regressiotestit yli 10 sivulla veivät päiviä ja estivät julkaisun.

Haaste

Markkinoille saamisen ajan lyhentämispaine ei voinut ylittää manuaalisten testaussyklien vauhtia, mikä aiheutti viivästyksiä tai heikensi laatua.

Ratkaisu, jossa on Selenium & Sivun objektimalli

Laadunvarmistuksen automaatiojohtaja esitteli Page Object Model (POM) -rakenteen C#:lla. Selenium WebDriver-skriptit kapseloivat sivuelementtejä ja toimintoja (haku lentoja, suodattimien käyttöä ja maksutapauksia). Automaattiset testiajot käynnistettiin yöllä GitLab CI:ssä.

Tulos

  • Testausaika lyheni kolmesta päivästä vain neljään tuntiin.
  • Skriptien uudelleenkäyttö useissa ominaisuuksissa vähentää skriptaustyötä 50 %.
  • Luottamus kasvoi: julkaisu toimitettiin aikataulussa ja virheraportteja tuli vähän.

Yhteinen Selenium Haasteet (ja korjaukset)

Vaikka Selenium on tehokas, mutta testaajat kohtaavat usein haasteita, jotka voivat vaikuttaa luotettavuuteen ja nopeuteen. Tässä on joitakin yleisiä haasteita ja niiden korjaaminen:

  1. Hiutaleiset testit:
    Testit voivat epäonnistua satunnaisesti ajoitus- tai verkko-ongelmien vuoksi.
    Fix: Käytä selkeitä odotusaikoja ja vakaita paikannuslaitteita; vältä Thread.sleep().
  2. Dynaamiset verkkoelementit:
    Elementtitunnusten tai XPath-lausekkeiden muuttaminen aiheuttaa elementtiä ei löydy -virheitä.
    Fix: Käytä suhteellisia XPath-lausekkeita, CSS-valitsimia tai dynaamista attribuuttien käsittelyä.
  3. SyncKronointiongelmat:
    Elementit latautuvat hitaammin kuin skriptin suoritus.
    Fix: Toteuta WebDriverWait odotetuilla ehdoilla.
  4. Selainten väliset epäjohdonmukaisuudet:
    Testit toimivat eri tavalla Chromessa, Firefoxtai Edge.
    Fix: Suorita testejä Selenium Grid- tai pilvialustat selainten väliseen validointiin.
  5. Ponnahdusikkunoiden ja hälytysten käsittely:
    Odottamattomat ponnahdusikkunat voivat keskeyttää testin kulun.
    Fix: Käyttää Seleniumn Alert -käyttöliittymää tai try–catch-lohkoja niiden käsittelemiseksi sujuvasti.
  6. Testin ylläpitokustannukset:
    Usein tehdyt käyttöliittymämuutokset tekevät testeistä hauraita.
    Fix: Ota käyttöön Page Object Model (POM) ja versionhallinta helppojen päivitysten takaamiseksi.
  7. Integraation haasteet:
    CI/CD-putkistot voivat katketa ​​ajuriongelmien vuoksi.
    Fix: Käyttää Selenium johtaja (Selenium 4+) tai WebDriver Manager ajureiden automaattiseen hallintaan.

Lyhyesti: bridge Selenium Ongelmat johtuvat huonosta synkronoinnista tai hauraista paikantimista – molemmat voidaan ratkaista älykkäämpien odotusaikojen, modulaarisen suunnittelun ja jatkuvan huollon avulla.

FAQ:

Selenium on avoimen lähdekoodin automaatiokehys, jota käytetään verkkosovellusten testaamiseen eri selaimissa ja alustoilla. Sen avulla testaajat voivat simuloida käyttäjien vuorovaikutusta, kuten klikkauksia, lomakkeiden lähettämistä ja navigointia, käyttämällä erilaisia ​​ohjelmointikieliä.

Selenium käytetään ensisijaisesti selainpohjaisen testauksen automatisointiin. Se auttaa varmistamaan verkkosovellusten oikean toiminnan eri selaimissa, tukee regressio- ja toiminnallista testausta ja integroituu helposti CI/CD-prosessien kanssa jatkuvaa testausta varten.

Selenium koostuu neljästä pääkomponentista: Selenium IDE (tallennus-/toistotyökalu), Selenium RC (vanhentunut), Selenium web-ajuri (moderni automaatio-API) ja Selenium ruudukko (rinnakkaista, selainten välistä testisuoritusta varten).

Neljä tyyppiä ovat: Selenium IDE testien tallentamiseen, Selenium RC vanhaa automaatiota varten, Selenium web-ajuri suoraa selaimen hallintaa varten ja Selenium ruudukko hajautettuun, rinnakkaistestaukseen useissa selaimissa.

Selenium WebDriver on ydinkomponentti, joka on suoraan vuorovaikutuksessa selainten kanssa natiivien API-rajapintojen avulla. Sen avulla kehittäjät voivat kirjoittaa vankkoja, selainten välisiä automaatioskriptejä kielillä, kuten Java, Pythonja C#:tä ilman, että tarvitsee luottaa JavaSkripti.

Selenium IDE on aloittelijaystävällinen ja tarjoaa tallennus- ja toistotoimintoja selainlaajennusten kautta. web-ajuritoisaalta on koodipohjainen, tukee useita kieliä ja tarjoaa edistynyttä, skaalautuvaa selainautomaatiota, joka soveltuu reaalimaailman testauskehyksiin.

Tiivistä tämä viesti seuraavasti: