docker selenium tutorial
Inleiding tot Docker Selenium-zelfstudie:
Zoals besproken in een van onze vorige tutorial Selenium grid helpt om onze testcases uit te voeren in verschillende besturingssystemen en in verschillende browsers.
Dit Docker Selenium-zelfstudie zal u meer uitleggen over wat een Docker is en hoe we het downloaden, installeren en integreren met het Selenium-raster, samen met de betrokken schermafbeeldingen en deze grafische weergave zal u ook in staat stellen het proces snel en gemakkelijk te begrijpen.
Wat je leert:
- Wat is Selenium Grid?
- Een praktisch voorbeeld van het gebruik van seleniumraster
- Wat is Docker?
- Vereisten voor Docker Selenium-zelfstudie
- Docker voor Windows downloaden
- Installeer de Docker-images
- Start Selenium Hub
- Start Selenium-knooppunten
- Seleniumtests configureren
- Gevolgtrekking
- Aanbevolen literatuur
Wat is Selenium Grid?
Selenium grid helpt om de computer (hub) onder de knie te krijgen voor verdeelde testcases onder de slavemachines (knooppunten).
Wanneer we op een gegeven moment alle testcases in één machine implementeren, kunnen er enkele beperkingen zijn, en soms is één enkele machine niet voldoende om alle testcases uit te voeren en op dat moment komt het seleniumrooster in de rol.
Een praktisch voorbeeld van het gebruik van seleniumraster
2-3 jaar geleden verbood China Google-producten in het land. In die tijd moesten enkele andere bedrijven die websystemen voor China ontwikkelden hun websysteem testen met andere browsers behalve Google-producten (Google Chrome) zoals Internet Explorer, Firefox, Opera, enz.
Dus in die tijd was het Selenium-raster erg handig voor die bedrijven, omdat ze het Selenium-raster gebruikten voor het uitvoeren van hun testcases in verschillende browsers behalve Google Chrome.
Wat is Docker?
In eenvoudige bewoordingen kan Docker worden aangeduid als een container. Ontwikkelaars of Docker-gebruikers kunnen zaken als database, bibliotheken, afhankelijkheden in die container plaatsen en vervolgens die databases, afhankelijkheden en bibliotheken gebruiken om toepassingen te maken, te implementeren en uit te voeren.
Door Docker-containers te gebruiken, kunt u een softwaretoepassing instellen en verpakken met alle inhoud die nodig is om die toepassing te bouwen, zoals databases, bibliotheken en andere afhankelijkheden, en tot slot kunt u ze allemaal als één pakket verzenden.
Gewoonlijk moeten we tijdens het configureren van het Selenium-raster meerdere virtuele machines als knooppunten hosten en moeten we elk knooppunt met de hub verbinden. Wanneer we een normaal raster opzetten, moeten we het Selenium-serverjar-bestand downloaden en dat jar-bestand uitvoeren op elke computer waarop we het Selenium-raster gaan opzetten.
Dit is een kostbare en soms tijdrovende taak voor de testers. Docker helpt ons echter om kostengerelateerde en tijdrovende problemen op te lossen.
Docker is uitgevonden door Solomon Hykey en werd in maart 2013 in de software-industrie geïntroduceerd als een open-source tool. Tegenwoordig gebruiken ontwikkelaars en systeemingenieurs Docker om verschillende redenen.
In deze tutorial gaan we Docker gebruiken voor softwaretests en softwareautomatisering.
Vereisten voor Docker Selenium-zelfstudie
Allereerst moeten we een omgeving opzetten om het Selenium-script uit te voeren.
Hieronder staan een paar dingen die we moeten controleren:
- Als uw machine bestaat uit JDK 1.7 of een latere versie
- Zijn Chrome- en Firefox-browsers op uw lokale computer geïnstalleerd?
- Op Selenium WebDriver en TestNG gebaseerde testcases.
- Geconfigureerd Testng.xml-bestand om testgevallen uit te voeren als parallelle tests.
Docker voor Windows downloaden
Het volgende dat we moeten doen, is de Docker-toolbox installeren. Om Docker-opdrachten uit te voeren, hebben we de Docker-snelstartterminal nodig die samen met de Docker-toolbox wordt geleverd. Daarom moeten we de Docker-toolbox installeren.
We kunnen de Docker-toolbox van elke website downloaden, maar ik raad je ten zeerste aan om de Docker-toolbox van hun officiële website te downloaden: Docker
Tijdens het installeren van de Docker-toolbox verschijnen een paar selectievakjes en om de installatie te voltooien, moet u al die selectievakjes aanvinken en de Docker-toolbox installeren. Als u het met succes hebt geïnstalleerd, krijgt u de volgende drie Docker-toolboxpictogrammen.
Dubbelklik na het installeren van de Docker-toolbox en open de Docker-snelstartterminal. Docker zal uw standaardmachine configureren met het IP-adres: 192.168.99.100 en het zal even duren om uw lokale computer voor de eerste keer te configureren. Daarom moet u wachten tot het volgende venster verschijnt.
Docker is succesvol geconfigureerd!
Installeer de Docker-images
Terwijl we het Selenium-raster configureren (zonder Docker), moeten we ook de Selenium-hub en -knooppunten (browsers) configureren.
Als een normaal raster wanneer we het Selenium-raster configureren met de Docker, moeten we de hub- en browserknooppunten in onze Docker-container installeren en later kunnen we de hub en knooppunten starten vanuit die Docker-container.
Daarom is het eerste dat u de hub- en knooppuntinstallatiekopieën in de Docker installeert.
In eerste instantie moeten we vijf afbeeldingen installeren om onze test met Docker uit te voeren.
- Selenium hub afbeelding
- Selenium node-firefox afbeelding
- Selenium node-chrome afbeelding
- Selenium node-firefox-debug-afbeelding
- Selenium node-chrome-debug-afbeelding
De volgende vraag is hoe je die afbeeldingen kunt vinden. Om die afbeeldingen te vinden, gaan we verder met de Docker Hub en zoek die afbeeldingen op naam en u kunt ook de naam van de afbeelding typen in de zoekbalk, zoals hieronder wordt weergegeven.
Zodra je de naam hebt getypt en op enter hebt gedrukt, kun je het onderstaande venster zien.
Dit venster toont alle afbeeldingsrepositories die we hebben voor Selenium hub. Hier moet je op de afbeelding met het meeste aantal pulls klikken en het zal helpen om onze code zonder fouten uit te voeren. Zodra u op die afbeelding klikt, ziet u een ander venster zoals hieronder.
Notitie:Klik op een afbeelding voor een vergrote weergave)
Dit venster geeft je alle informatie over de afbeelding (Selenium hub-afbeelding) en geeft je alle opdrachten die relevant zijn voor die afbeelding (Selenium-hub-afbeelding). Hier is de Docker-pull-opdracht de opdracht om die Docker-image in uw container te installeren.
Daarom moeten we in eerste instantie de Selenium-hubimage installeren. Om dat te doen, moet u de Docker-pull-opdracht kopiëren en deze in de Docker-snelstartterminal plakken, zoals hieronder wordt weergegeven.
Na het invoeren van elke opdracht in de Docker-snelstartterminal, moet u enige tijd wachten voordat de afbeeldingen kunnen worden gedownload naar uw Docker-container en de wachttijd is volledig afhankelijk van de snelheid van uw netwerkverbinding. Soms mislukken sommige afbeeldingen tijdens het installeren of downloaden en als dit gebeurt, kunt u die afbeelding het beste opnieuw installeren totdat de terminal laat zien dat de installatie is voltooid.
Een andere belangrijke factor is dat men het tweede commando niet moet typen voordat het downloaden van het eerste commando is voltooid. Zowel het downloaden als de installatie mislukken.
Op dezelfde manier kunt u alle vijf bovenstaande afbeeldingen zoeken en installeren in uw Docker-container.
De onderstaande tabel toont alle pull-opdrachten die u in de Quickstart-terminal moet typen en installeren.
Beeld | Opdracht |
---|---|
Selenium-hub | docker pull selenium / hub |
Selenium firefox-knooppunt | docker pull selenium / node-firefox |
Selenium chromen knooppunt | docker pull selenium / node-chrome |
Selenium firefox debug | docker trekt selenium / node-firefox-debug |
Selenium chrome debug | docker pull selenium / node-chrome-debug |
Nadat u alle afbeeldingen in uw container heeft gedownload, kunt u deze controleren met de onderstaande opdracht.
Docker-afbeeldingen
Nu zijn alle afbeeldingen met succes gedownload. Daarom kunnen we die afbeeldingen een voor een uitvoeren.
Start Selenium Hub
In een normaal Selenium-raster (zonder Docker) is de eerste stap het starten van Selenium-hub. Om Selenium hub vanuit Docker-container te starten, hebben we een speciaal commando dat is
docker run -d -p 4444: 4444 –naam selenium-hub selenium / hub
Zodra u die opdracht in uw terminal typt en invoert, wordt de Selenium-hub geopend vanuit de Docker-container. U kunt controleren of de Selenium-hub is gestart of niet door de volgende link in uw browser te controleren: http://192.168.99.100:4444/grid/console
hoe testcases te schrijven vanuit vereisten
Hier in deze afbeelding is 192.168.99.100 uw IP-adres
Start Selenium-knooppunten
Selenium-hub wordt gestart en vervolgens moeten we knooppunten starten vanuit de Docker-container, we moeten Chrome-knooppunt en Firefox-knooppunt starten. We hebben tijdens het installatieproces beide knooppunt-images in onze Docker-container geïnstalleerd.
Laten we nu beginnen met beide knooppunten een voor een. Onthoud ook dat u zoveel knooppunten kunt uitvoeren als u wilt. Hier heb ik slechts twee knooppunten gebruikt (Chrome-knooppunt en Firefox-knooppunt).
Commando om Chrome-knooppunt uit te voeren vanuit Docker: docker run -d –link selenium-hub: hub selenium / node-chrome
Commando om firefox-knooppunt uit te voeren vanuit Docker: docker run -d –link selenium-hub: hub selenium / node-firefox
Na het uitvoeren van Chrome-knooppunt en Firefox-knooppunt, moeten we ook Chrome-foutopsporingsknooppunt en Firefox-foutopsporingsknooppunt uitvoeren. We voeren en installeren het Chrome-foutopsporingsknooppunt en Firefox-foutopsporingsknooppunt voor demonstratiedoeleinden en aan het einde van deze tutorial zal ik een testcase uitvoeren in beide foutopsporingsknooppunten met behulp van VNC-viewer (Virtual Network Computing).
Voor VNC-viewer hebben we zowel het foutopsporingsknooppunt van firefox als chrome nodig. VNC-viewer (Virtual Network Computing) helpt ons om verschillende browseracties tegelijkertijd op één computer te bekijken.
Commando om Chrome-foutopsporingsknooppunt uit te voeren vanuit Docker: docker run -d –P –link selenium-hub: hub selenium / node-chrome-debug
Commando om Firefox-foutopsporingsknooppunt uit te voeren vanuit Docker: docker run -d –P –link selenium-hub: hub selenium / node-firefox-debug
Soms kunnen beide opdrachten worden genegeerd door de Docker-snelstartterminal. Als uw Docker-snelstartterminal deze twee opdrachten negeert, kunt u ook de onderstaande opdrachten gebruiken om de foutopsporingsmodus van Chrome- en Firefox-browsers te starten.
Alternatief 01
docker run –d –P –link selenium-hub: hub selenium / node-chrome-debug
docker run –d –P –link selenium-hub: hub selenium / node-firefox-debug
Alternatief 02
docker run –d –link selenium-hub: hub selenium / node-chrome-debug
docker run –d –link selenium-hub: hub selenium / node-firefox-debug
Nadat u zowel de knooppunten als de foutopsporingsknooppunten van Chrome- en Firefox-knooppunten en Chrome en Firefox hebt uitgevoerd, kunt u uw browser vernieuwen en zult u Firefox en Chrome-knooppunt vinden vanaf uw container.
Als er een fout optreedt tijdens de installatie of het uitvoeren van afbeeldingen, kunt u die afbeelding het beste opnieuw installeren en opnieuw uitvoeren vanuit Docker.
We hebben nu alle stappen aan de Docker-containerzijde doorlopen. Vervolgens moeten we aandacht besteden aan het Selenium-script en de VNC-viewer voor het doen van onze demonstratie.
Ten eerste moeten we de poortnummers identificeren van Chrome- en Firefox-foutopsporingsknooppunten die worden uitgevoerd. Omdat we die poortnummers nodig hebben voor VNC-viewer.
Om de poortnummers van Chrome en Firefox-knooppunt te identificeren, typt u de onderstaande opdracht in uw snelstartterminal en ziet u alle Docker-afbeeldingen en de actieve poorten van elke afbeelding onder de PORTS-kolom.
havenarbeider ps - een
Knooppunten | Poortnummers uitvoeren |
---|---|
Chrome-foutopsporingsknooppunt | 32771 |
Firefox-foutopsporingsknooppunt | 32772 |
Nu kennen we de poortnummers van de Chrome- en Firefox-foutopsporingsknooppunten die worden uitgevoerd, zodat we beide browsers kunnen starten met VNC-viewer.
Daarvoor moeten we de onderstaande stappen volgen:
1) Download VNC-viewer van hun officiële site: VNC downloaden
twee) Voer het uit
3) Typ de hub-URL en het poortnummer van elke foutopsporingsmodus zoals hieronder weergegeven en klik op de verbindingsknop
HUB-URL POORTNUMMER
- Voor Chrome-browser 192.168.99.100 32771
4) Na het klikken op de verbindingsknop zal de VNC-viewer om een wachtwoord vragen. Standaard is het wachtwoord voor VNC-viewer geheim , typ het wachtwoord als geheim en klik op Ok en je zult een venster voor de Chrome-browser kunnen zien.
5) Evenzo moet u hetzelfde doen voor de Firefox-browser door een VNC-viewer te gebruiken. Open de VNC-applicatie op uw lokale computer en gebruik Firefox-poortnummer met de hub-URL en klik op de verbindingsknop.
- Voor Firefox-browser 192.168.99.100 32772
Opnieuw ziet u een ander venster openen voor de Firefox-browser.
Nu worden beide browsers weergegeven in de VNC-viewer. Onze volgende taak is om het seleniumscript te schrijven en uit te voeren.
Seleniumtests configureren
Zoals gewoonlijk kunnen we een testscript maken dat relevant is voor het seleniumraster, stappen om een seleniumraster te maken worden besproken in onze selenium grid tutorial
Hier is het script dat ik heb gemaakt, dit is een normaal selenium-script en ik heb twee tests gemaakt en de gewenste capaciteit van die tests ingesteld op twee verschillende browsers die we hebben gemaakt.
Ook heb ik mijn XML-bestand gewijzigd om de test parallel uit te voeren.
We hebben alle stappen voltooid en u kunt nu uw test uitvoeren. Nadat je je test hebt uitgevoerd, kun je de test zien lopen in twee verschillende browsers die we hebben gemaakt met Docker. VNC-viewer laat zien hoe een browser tegelijkertijd naar elke website navigeert.
Gevolgtrekking
Als u een groot aantal testcases heeft, kunt u het Selenium-rooster gebruiken om de uitvoering van uw testcases te versnellen. Soms moeten we uw testcases draaien en testen onder verschillende besturingssystemen en soms moet u uw testcases ook onder verschillende browsers controleren. Bij dergelijke gelegenheden gebruiken we het seleniumrooster.
Soms kan het configureren van het selenium-netwerk een duur en tijdrovend proces zijn, omdat we meerdere machines nodig hebben. In dergelijke gevallen is de beste optie om het Selenium Grid met Docker te gebruiken.
Aanbevolen literatuur
- Selenium Grid-zelfstudie: installatie en voorbeeld van crossbrowser-testen
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Diepgaande Eclipse-zelfstudies voor beginners
- Efficiënte Selenium-scripts en scenario's oplossen - Selenium-zelfstudie # 27
- Selenium-scripts debuggen met logboeken (Log4j-zelfstudie) - Selenium-zelfstudie # 26
- 30+ beste selenium-zelfstudies: leer selenium met echte voorbeelden
- Inleiding tot JUnit Framework en het gebruik ervan in Selenium Script - Selenium Tutorial # 11