I grundlæggende vendinger er headless browsere browsere, der kan bruges til at teste anvendeligheden af websider og udføre browserinteraktioner, ligesom du ville med din almindelige browser. Den eneste forskel her er, at der ikke er nogen grafisk brugergrænseflade (GUI), og de udføres normalt fra terminalen.
Hovedløse browsere:
- hjælpe med at reducere ressourceforbruget kraftigt
- de er hurtigere
- de er ideelle til webskrabning
- de kan bruges til at overvåge netværksapplikationens ydeevne
Nu hvor vi har kendt en vigtig faktor for begge værktøjer, kan vi fortsætte.
Dukketeater
Puppeteer er et Node-bibliotek fra Google, der giver en simpel API til styring af headless Chrome. Gennem Puppeteer kan almindelige opgaver som at indtaste input, klikke på knapper, teste brugervenlighed på websider og endda webskrabning let udføres.
Puppeteer er officiel fra Chrome-teamet og bruger Chrome Remote Debug Protocol, ligesom vi ville finde med Chrome Devtools. Dette bibliotek understøtter den moderne JavaScript-syntaks, der er tilgængelig i Google Chrome.
Opsætning
Det er meget nemt at installere og komme i gang med Puppeteer. Da Puppeteer er et Node-bibliotek, kan det installeres ved hjælp af npm værktøj.
Installation kan udføres med nedenstående kommando:
npm i dukketeaterKørsel af kommandoen ovenfor installerer Puppeteer. Det forventes også at downloade en nyere version af Chromium, der fungerer sammen med API'en.
Størrelsen på Chromium varierer alt efter operativsystem:
- ~ 170MB til Mac
- ~ 282MB til Linux
- ~ 280 MB til Windows
Efter installation af Puppeteer kan du finde ud af mere information om, hvordan du kommer i gang, og du kan også tjekke flere kodeeksempler.
Funktioner
Mens Puppeteers evne til at starte en hovedløs browser er en funktion, der har fået det en vis berømmelse, er det ikke den eneste funktion, der gør det fantastisk. Puppeteer har også et par andre funktioner, der gør det nyttigt, lad os se hurtigt på nogle af dem.
Nem automatisering:
Mens der er andre værktøjer, der kan bruges til webautomation, kommer Puppeteer ud af toppen. Dette skyldes, at det kun fungerer fint for en browser, som er den headless Chrome-browser, derfor udfører den webautomatiseringsopgaver på den mest effektive måde. Puppeteer fungerer også fint med populære enhedstestbiblioteker som Mocha og Jasmine.
Test af skærmbillede:
Dette er en vigtig funktion for enhver automatiseret webtestopgave. Screenshots er vigtige og hjælper med at holde styr på resultatet af interaktioner med elementer på en webside. Biblioteker som Puppeteer-screenshot-tester findes også i Puppeteer, der giver mulighed for at sammenligne skærmbilleder genereret under test. Bortset fra at generere skærmbilleder af tests, kan PDF-filer også genereres fra testede websider i marionet.
Ydelsestest:
Chrome leverer DevTools, der tillader optagelse af ydeevne-tidslinjen på websider, og Puppeteer drager også fordel af dette. Med Puppeteer kan tidslinjespor af websteder fanges for at undersøge præstationsproblemer. På grund af Puppeteers API-kontrol på højt niveau over Chrome Developers Tools Protocol giver det brugerne mulighed for at kontrollere servicearbejdere og teste caching af websteder.
Webskrabning:
En samtale om funktioner ville ikke være afsluttet uden at anerkende Puppeteers evne til at blive brugt til webskrabning. At lære at bruge Puppeteer som en webskraber er ret let, se på API-dokumentationen.
Fordele
- Fungerer fint til visuel test.
- Fantastisk til test til ende til slut.
- Hurtigt sammenlignet med selen.
- Kan tage skærmbilleder af websider.
- Mere kontrol over test gennem Chrome.
- Kan teste offline-tilstand.
Ulemper
- Understøtter kun JavaScript (Node)
- Understøtter kun Chrome
Selen
Selen er en stærk ramme om webtest, der har evnen til at automatisere webapplikationer til testformål. Selen er også kendt for sin evne til at automatisere webbaserede administrationsopgaver.
Selen findes i to dele; Selen WebDriver til oprettelse af kraftfulde, browserbaserede automatiseringspakker og test og Selen IDE til oprettelse af hurtige reproduktionsscript til fejl.
Ikke at glemme, at Selen også understøtter headless browsere som set med Puppeteer.
Opsætning
I modsætning til Puppeteer er det ikke ligetil at oprette selen. Selen understøtter mange sprog og forskellige browsere, derfor skal disse mulige forhold tages hånd om.
Nedenfor er der links til officielle vejledninger om, hvordan du konfigurerer Selen-bindinger til forskellige sprog.
- C #
- Java
- JavaScript
- Python
- Rubin
Bortset fra at understøtte forskellige sprog understøtter Selen også flere browsere. I modsætning til Puppeteer, der installerer Chromium under installationen, skal du muligvis installere webdrivere til den valgte webbrowser.
Her er links til webdrivere til Mozilla Firefox og Google Chrome.
Hvis du også vil bruge Selen IDE, findes den også til flere browsere. Her er links til Selenium IDE til Mozilla Firefox og Google Chrome.
Funktioner
Evnen til at arbejde med hovedløse browsere har gjort det utvivlsomt til det mest populære webautomationsværktøj, men der er andre funktioner, der gør det kraftigt.
Flersproget support:
Dette er en meget vigtig Selen-funktion. Med sin understøttelse af flere sprog kan flere udviklere komme til at bruge værktøjet til deres webautomatiseringstestopgaver. Mens man måske tror, at dens understøttelse på flere sprog ville gøre det langsomt, kører Selen stadig i god hastighed, da det ikke er nødvendigt at starte en server i Web Driver.
Multi-platform support:
På samme måde som Selen ikke er begrænset af sprogbarrierer, er det heller ikke begrænset af platformbarriere. Det er ingen nyheder, at webapplikationer opfører sig forskelligt på flere platforme. Selen giver testere mulighed for at teste på tværs af større webbrowsere for at give en jævn brugeroplevelse for brugere på tværs af forskellige browsere. Bortset fra browsere kan Selen også bruges til at teste på mobiltelefoner som Android-, iOS-, Windows-, Blackberry-apps.
Optagelsesværktøj:
Med Selenium IDE er det let at registrere webautomatiseringstest. Selen IDE tillader testere at gøre brug af optagefunktionen såvel som autokomplet support og evnen til at navigere kommandoer. Optagelsesværktøjet er stoppet med at arbejde på Firefox 55 og nyere versioner, men der er andre plugins på Firefox, der tjener det samme formål. Derfor er evnen til at optage tests fortsat en vigtig Selen-funktion.
Webskrabning:
Mens Selen bruges til test af webapplikationer, skalerer det også godt som en webskraber. Selen kan bruges til at skrabe AJAX-websteder og de sværeste websteder at skrabe, forudsat at du kan forstå HTML-strukturen. Du kan tjekke denne vejledning om brug af Selen til webskrabning med Python.
Fordele
- Multi-platform support.
- Flersproget support.
- Evne til at registrere test.
- Kan også tage skærmbilleder.
- Kæmpe brugerfællesskab.
Ulemper
- Langsom sammenlignet med dukketeater.
- Begrænset kontrol over test sammenlignet med Puppeteer.
Konklusion
Hvis du ikke er generet af at teste websider på andre platforme bortset fra Chrome, fungerer du fint sammen med Puppeteer, forudsat at du er i stand til at arbejde med JavaScript (Node). Men hvis du er bekymret for flere platforme, er det ikke en god idé at bruge Selen. Når vi taler om deres webskrabningsevner, begge værktøjer selv dem derude. Det skal dog bemærkes, at dukketeater kan være hurtigere end selen.
Ethvert værktøj, du vælger i slutningen af dagen, skal være fint, bare nyd at skrive dine automatiseringsskripter.