Hoe een selenium grid 4 localhost in te stellen (handmatig of Docker)
In vensters
Download de Selenium Server-jar: Zorg ervoor dat u de juiste versie van het Selenium Server-jar-bestand (selenium-server-4.17.0.jar) naar uw computer hebt gedownload.
- Opdrachtprompts openen: U moet twee opdrachtpromptvensters (cmd) openen op uw Windows-computer voor de hub en de node.
- Start de hub:
- Navigeer in het eerste opdrachtpromptvenster naar de map waar u selenium-server-4.17.0.jar hebt gedownload.
- Voer de volgende opdracht uit om de Selenium Grid Hub te starten: java -jar selenium-server-4.17.0.jar hub
java -jar selenium-server-4.17.0.jar hub
- Start het knooppunt en registreer u bij de hub:
- Navigeer in het tweede opdrachtpromptvenster naar de map waar selenium-server-4.17.0.jar zich bevindt.
- Voer de volgende opdracht uit om een node te starten en deze bij de hub te registreren:
java -jar selenium-server-4.17.0.jar knooppunt –selenium-manager true
java -jar selenium-server-4.17.0.jar knooppunt –selenium-manager true
- Controleer de installatie:
- Open een webbrowser en ga naar http://localhost:4444/ui om toegang te krijgen tot de Grid-console. U zou zowel de hub als het knooppunt in de lijst moeten zien staan, wat aangeeft dat ze werken en correct zijn geregistreerd.
- Test het raster:
- Gebruik de curl-opdracht om een nieuwe sessie te maken en een browser te openen. Deze stap wordt uitgevoerd om te controleren of opdrachten naar het raster kunnen worden gestuurd en correct kunnen worden uitgevoerd. Voer de volgende opdracht uit vanaf een andere opdrachtprompt of terminalvenster:
curl --location 'http://localhost:4444/session' \
--header 'Content-Type: application/json; charset=utf-8' \
--data '{
"capabilities": {
"firstMatch": [
{
"goog:chromeOptions": {
"args": [],
"extensions": []
},
"browserName": "chrome"
}
]
}
}'
}
Probleemoplossing
- Zorg ervoor dat Java is geïnstalleerd: Controleer of Java op uw computer is geïnstalleerd door java -version uit te voeren in de opdrachtprompt.
- Controleer de beschikbaarheid van de poorten: De standaardpoort voor de Selenium Grid Hub is 4444. Zorg ervoor dat deze poort niet door een andere toepassing wordt gebruikt.
- Firewall en antivirus: Soms blokkeren firewall- of antivirusinstellingen de communicatie tussen de hub en de node. Zorg ervoor dat deze instellingen verkeer toestaan op poort 4444 en alle andere poorten die door Selenium worden gebruikt. Selenium grid instellen in Docker en Docker Compose (windows linux enz.)
Het opzetten van Selenium Grid met Docker Compose is een meer gestroomlijnde en moderne aanpak, vooral wanneer u een schaalbare en eenvoudig te configureren omgeving nodig hebt. Met Docker Compose kunt u Docker-toepassingen met meerdere containers definiëren en uitvoeren, waardoor het eenvoudiger wordt om de Selenium Hub en knooppunten te implementeren met slechts een paar opdrachten.
Vereisten
- Docker: Zorg ervoor dat Docker en Docker Compose op uw computer zijn geïnstalleerd. Je kunt ze downloaden van de Docker-website en de installatie-instructies voor je besturingssysteem volgen.
Een Docker Compose-bestand aanmaken
- Maak een docker-compose.yml-bestand: Dit bestand definieert de services, netwerken en volumes voor uw Docker-toepassing. Voor Selenium Grid definieert u services voor de Selenium Hub en de knooppunten (bijvoorbeeld Chrome, Firefox).
- Definieer de services: In het bestand docker-compose.yml specificeert u de Selenium Hub- en node-services. Hier is een voorbeeldconfiguratie, maar alle configuraties zijn te vinden in de hoofdrepository van selenium https://github.com/SeleniumHQ/docker-selenium
Een Docker Compose-bestand aanmaken
- Maak een docker-compose.yml-bestand: Dit bestand definieert de services, netwerken en volumes voor uw Docker-toepassing. Voor Selenium Grid definieert u services voor de Selenium Hub en de knooppunten (bijvoorbeeld Chrome, Firefox).
- Definieer de services: In het bestand docker-compose.yml specificeert u de Selenium Hub- en node-services. Hier is een voorbeeldconfiguratie:
version: '3'
services:
selenium-hub:
image: selenium/hub:4.17.0
container_name: selenium-hub
ports:
- "4444:4444"
chrome-node:
image: selenium/node-chrome:4.17.0
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
volumes:
- /dev/shm:/dev/shm
firefox-node:
image: selenium/node-firefox:4.17.0
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
volumes:
- /dev/shm:/dev/shm
Met deze configuratie wordt een Selenium Grid opgezet met één hub en twee knooppunten (één voor Chrome en één voor Firefox). De optie depends_on specificeert dat de knooppunten afhankelijk zijn van de hub die als eerste wordt gestart. De volumeoptie voor /dev/shm:/dev/shm wordt aanbevolen om fouten in het geheugen in browsers te voorkomen.
Docker Compose uitvoeren
- Start the Grid: Navigeer naar de map die uw docker-compose.yml-bestand bevat en voer de volgende opdracht uit om alle services te starten die in de configuratie zijn gedefinieerd: docker-compose up -d
docker-compose up -d
- Controleer de instellingen: Open een webbrowser en ga naar http://localhost:4444/ui om toegang te krijgen tot de Selenium Grid-console. Je zou de hub en geregistreerde knooppunten moeten zien.
- Knooppunten schalen: als u meer exemplaren van Chrome- of Firefox-knooppunten nodig hebt, kunt u deze schalen met Docker Compose: docker-compose up -d –scale chrome-node=2 –scale firefox-node=2
Opmerking: handmatig schalen (via de normale docker-syntaxis) gebeurt als volgt
docker run -d –link selenium-hub:hub selenium/node-chrome:4.17.0
docker run -d –link selenium-hub:hub selenium/node-chrome:4.17.0
docker-compose up -d –scale chrome-node=2 –scale firefox-node=
Met deze opdracht worden de Chrome- en Firefox-knooppunten geschaald zodat ze elk uit twee exemplaren bestaan.
De containers stoppen en verwijderen
Als je klaar bent met de Selenium Grid, kun je de containers stoppen en verwijderen met Docker Compose:
docker-compose naar beneden
docker-compose naar beneden
Deze opdracht stopt en verwijdert de containers, netwerken en volumes die zijn gedefinieerd in uw docker-compose.yml-bestand.
Het gebruik van Docker Compose voor Selenium Grid vereenvoudigt het installatie- en beheerproces, waardoor eenvoudige schaalbaarheid en configuratieaanpassingen mogelijk zijn.