selenium phantomjs tutorial
In dit artikel wordt Selenium-automatisering met PhantomJS uitgelegd met codevoorbeelden:
PhantomJS is een headless browser die voornamelijk wordt gebruikt voor GUI-minder automatisering.
De prestaties en uitvoering die op deze browser plaatsvinden, zijn sneller en worden over het algemeen gebruikt in de scenario's waarin handmatige monitoring niet vereist is en op die applicaties die volledig automatiseerbaar zijn.
PhantomJS wordt ten zeerste aanbevolen in het geval van scriptuitvoering van de ene op de andere dag, waar menselijke monitoring niet vereist is omdat de uitvoering snel en snel gaat. Het biedt ook opties voor een automatisch screenshot voor het handmatig volgen van het scriptuitvoeringsproces.
Wat je leert:
- PhantomJS-gebruik op webpagina-automatisering
- PhantomJS en Selenium voor webautomatisering (basis)
- PhantomJS en Selenium voor webautomatisering (geavanceerd)
- Schermafbeelding en rapportage na uitvoering
- Aanbeveling om PhantomJS als testbrowser te gebruiken
- Aanbevolen literatuur
PhantomJS-gebruik op webpagina-automatisering
In dit artikel zullen we de Selenium-automatiseringstool gebruiken om functionele automatisering uit te voeren op de PhantomJS-browser.
PhantomJS instantieert eigenlijk een browser die geen GUI-interface heeft, maar het heeft alle standaard van een browser met een GUI-interface zoals (Firefox, IE, etc.), standaard DOM-scripting, Ajax-oproepen, enz.
Doelstelling van het gebruik van PhantomJS met selenium
Het is erg belangrijk om het doel van het gebruik van PhantomJS met selenium te begrijpen.
We weten allemaal dat Selenium een functionele automatiseringstool is die wordt gebruikt voor het automatiseren van verschillende functionaliteiten van webapplicaties.
Nu is het doel van PhantomJS iets anders, aangezien het een GUI-loze browser is en het primaire gebruik ervan is om de testcases te automatiseren die vallen onder de categorie van rooktest / validatietests en niet volwaardige regressieve testautomatisering.
Als we automatiseren met Selenium en PhantomJS, moeten we voorzichtig zijn bij het kiezen van de testcases. Een ander belangrijk onderdeel is het volgen van de uitvoeringsstatus van testcases, aangezien we de uitvoering fysiek niet kunnen zien.
PhantomJS en Selenium voor webautomatisering (basis)
Net als alle andere browsers met GUI-interface (Firefox, IE, Chrome, etc.) heeft ook voor PhantomJS Selenium een standaard API om de automatisering te ondersteunen.
Laten we hetzelfde illustreren met een eenvoudige code:
Het bovenstaande codefragment wordt gestart Selenium officiële website op de PhantomJS-browser en voert een klikbewerking uit op het downloadtabblad. Vervolgens berekent het het aantal h3-getagde headers van de hoofdinhoud op de downloadpagina en drukt deze af.
download mp3 muziekdownloader voor Android
Na de uitvoering van elke bewerking wordt een screenshot gemaakt voor handmatige tracking.
wat is een dubbele variabele in java
Nu zullen we dezelfde testfunctionaliteit integreren in een raamwerk met log-tracking samen met de screenshot. Laten we ook automatische mailing toevoegen samen met uitgebreide rapportintegratie om het een volledige automatisering te geven, zodat we het uitvoeringsresultaat later kunnen volgen.
PhantomJS en Selenium voor webautomatisering (geavanceerd)
Afbeelding van de raamwerkstructuur
Het raamwerk is zoals de afbeelding suggereert en bestaat uit:
- De herbruikbare componenten die door elk testscript kunnen worden hergebruikt
- De testcomponent die bij elke nieuwe testcase nieuw wordt aangemaakt.
- De broncomponenten die de invoer van het framework zijn, zoals (webelement-locators, URL, etc.)
Hier is het project gebouwd op Maven samen met testframework TestNG. We hebben ook het omvangrapport gebruikt. Maar ik ga niet in op de details van een Maven-project of uitgebreid rapport, maar houd de focus op PhantomJS.
Codedetails voor elk van de componenten worden hieronder gegeven. Dit raamwerk is bedoeld om zich te concentreren op de implementatie van phantomJS, dus het raamwerk is op basis daarvan ontworpen, maar men kan dit raamwerk zeker uitbreiden volgens de eigen bedrijfsspecificatie.
Eerst zullen we zien in welke afhankelijkheden we moeten aangeven POM.xml om dit project uit te voeren
POM.xml
Herbruikbare componenten
InitiateBrowser.java
Dit stukje code is gekoppeld aan Browser Initiation.
Hier is de browsernaam hard gecodeerd. Maar het kan worden geëxternaliseerd (in eigenschappen / Excel-blad). Men kan kiezen welke browser te gebruiken, en hier hebben we PhantomJS gebruikt.
PropertyReader.java
Dit stuk code is gekoppeld aan het bestand met leeseigenschappen dat we hebben gebruikt als een webelementzoeker en URL-container.
HerbruikbareMethods.java
Dit stuk code behandelt verschillende Selenium-functies die we regelmatig in onze scripts gebruiken, maar we hebben deze functies gescheiden van testscripts om de regels code in het framework te verminderen en de bruikbaarheid ervan te vergroten.
SendMail.java
Dit stuk code behandelt het verzenden van een geautomatiseerde mail na de uitvoering van de testcase.
Test componenten
TestScripts.java
Dit is de daadwerkelijke testcase waarbij:
- We lanceren de URL.
- We klikken op het downloadtabblad en controleren of de downloadlink klikbaar is of niet.
- We lezen alle h3-headers op het downloadtabblad van de pagina.
- We valideren de telling van de h3-headers.
Herbruikbare componenten
ScreenShotLocations.java
APPURL.eigenschappen
ObjectRepository.properties
Dit zijn de input die aan dit raamwerk wordt geleverd, aangezien het raamwerk is ontworpen om gegevensgestuurd te zijn.
- ScreenShotLoc.java slaat de locatie van het screenshot op het station en de locatie van het stuurprogramma van de browser op.
- APPURL.properties slaat de applicatie-URL op die bij het testen is betrokken.
- ObjectRepository.properties slaat locators van webelementen op.
Schermafbeelding en rapportage na uitvoering
Nu gaan we het post-executierapport bekijken:
Positief scenario: De bovenstaande schermafbeelding is het rapport dat wordt gegenereerd wanneer alle teststappen van de geautomatiseerde testgevallen met succes zijn uitgevoerd.
youtube video-downloader voor pc gratis download
Negatief scenario: De bovenstaande schermafbeelding is het rapport dat wordt gegenereerd wanneer alle teststappen van de geautomatiseerde testgevallen niet succesvol zijn uitgevoerd.
Geautomatiseerde mail-screenshot:
Aanbeveling om PhantomJS als testbrowser te gebruiken
Hieronder vindt u enkele aanbevelingen voor het gebruik van PhantomJS als testbrowser.
- De uitvoering is snel met goede prestaties.
- Een goede kandidaat voor automatisering als handmatige monitoring niet vereist is, aangezien de browser niet GUI minder is.
- Een echte aanrader wanneer de testcases zijn ontworpen om rooktesten uit te voeren of testcases waarbij alleen rekening wordt gehouden met validatiepunten.
- Niet aanbevolen voor regressieve functionele tests.
Voorgesteld lezen = >> Schermafbeeldingen in Selenium
Veel leesplezier !!
Aanbevolen literatuur
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- 7 factoren die de testschatting van het seleniumautomatiseringsproject beïnvloeden - Selenium-zelfstudie # 32
- Appium Studio voor Eclipse: end-to-end Appium / Selenium-automatisering van Eclipse
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Selenium Grid-zelfstudie: installatie en voorbeeld van crossbrowser-testen
- ChromeDriver Selenium-zelfstudie: Selenium Webdriver-tests op Chrome
- Efficiënte Selenium-scripts en scenario's oplossen - Selenium-zelfstudie # 27
- Selenium-scripts debuggen met logboeken (Log4j-zelfstudie) - Selenium-zelfstudie # 26