Selenium grid setup in katalon studio
Om nog meer te profiteren van parallel testen, kunt u overwegen om een selenium grid setup te gebruiken voor katalon studio. Op dit moment ondersteunt Katalon alleen Selenium grid 3 maar…
Het uitvoeren van Selenium 3 tests op een Selenium 4 Grid is haalbaar en is ontworpen om achterwaarts compatibel te zijn om ervoor te zorgen dat tests die zijn geschreven met de Selenium 3 API nog steeds kunnen worden uitgevoerd op de nieuwere Selenium Grid versie zonder dat onmiddellijke code wijzigingen nodig zijn. Het is echter aan te raden om uiteindelijk uw tests bij te werken naar Selenium 4 om volledig te profiteren van de nieuwe functies en verbeteringen in Selenium 4. Hier is hoe u uw Selenium 3 tests kunt uitvoeren op een Selenium 4 Grid:
Een Selenium Grid opzetten op Kubernetes of AWS Fargate biedt een schaalbare en flexibele infrastructuur voor parallel testen, waardoor u meerdere Selenium tests tegelijkertijd kunt uitvoeren op verschillende browsers en besturingssystemen. Deze setup is gunstig voor het versnellen van de uitvoering van een grote testsuite en het garanderen dat uw applicatie correct werkt in verschillende omgevingen. Hieronder staan algemene handleidingen voor het opzetten van Selenium Grid op Kubernetes en AWS Fargate.
Selenium Grid opzetten op Kubernetes
Kubernetes, een open-source platform voor het beheren van containerized workloads en services, is zeer geschikt voor het draaien van Selenium Grid op een schaalbare en veerkrachtige manier.
Vereisten
- Een Kubernetes cluster opgezet en toegankelijk. U kunt beheerde services zoals Google Kubernetes Engine (GKE), Amazon EKS, of Azure AKS gebruiken.
- kubectl command-line tool geïnstalleerd en geconfigureerd om te communiceren met uw cluster.
- Basis kennis van Kubernetes concepten (Pods, Deployments, Services). Stappen
- Maak een Selenium Grid Deployment:
- Gebruik de officiële Selenium images (selenium/hub, selenium/node-chrome, selenium/node-firefox) voor de hub en nodes.
- Definieer een Kubernetes deployment voor de Selenium hub en elk type Selenium node dat u nodig heeft.
- Expose the Selenium Hub:
- Maak een Kubernetes service om de Selenium hub bloot te stellen aan uw tests. U kunt een LoadBalancer service type gebruiken voor externe toegang of een ClusterIP als u van plan bent om tests uit te voeren binnen het cluster.
- Schaal Selenium Nodes:
- Pas het aantal replica’s voor elk node type aan volgens uw behoeften voor parallel testen.
- Voer Tests uit:
- Configureer uw testframework om verbinding te maken met de Selenium hub met behulp van het IP-adres of de DNS-naam van de service.
Selenium Grid opzetten op AWS Fargate
AWS Fargate is een serverless compute engine voor containers die werkt met Amazon Elastic Container Service (ECS), waardoor u containers kunt draaien zonder servers of clusters te beheren.
Vereisten
- Een AWS account en bekendheid met AWS services.
- De AWS CLI geïnstalleerd en geconfigureerd. Stappen
- Maak een ECS Cluster:
- Kies voor het Fargate launch type bij het maken van uw cluster.
- Definieer Task Definitions:
- Maak ECS task definitions voor de Selenium hub en node containers, en specificeer het gebruik van de officiële Selenium Docker images.
- Voer de Selenium Hub en Nodes uit als Services:
- Maak ECS services voor de Selenium hub en elk node type, verwijzend naar hun respectievelijke task definitions. Zorg ervoor dat de network mode is ingesteld op awsvpc voor directe netwerkmogelijkheden.
- Expose the Selenium Hub:
- Gebruik een Application Load Balancer (ALB) om de Selenium hub service extern bloot te stellen. Configureer de listener en target group om verzoeken door te sturen naar de hub.
- Schaal Selenium Nodes:
- Pas het gewenste aantal taken voor elke node service aan volgens uw testvereisten.
- Voer Tests uit:
- Richt uw testuitvoeringen op de ALB DNS-naam om verbinding te maken met de Selenium Grid.
Algemene Tips
- Monitoring en Logging: Maak gebruik van Kubernetes en AWS monitoring en logging tools om de prestaties van de Selenium Grid bij te houden en problemen op te lossen.
- Beveiliging: Zorg ervoor dat uw Selenium Grid veilig is, vooral als deze extern wordt blootgesteld. Overweeg het gebruik van netwerkbeleid in Kubernetes en beveiligingsgroepen in AWS om de toegang te beperken.
- Versiecompatibiliteit: Zorg er tijdens het instellen voor dat de versie van Selenium Grid en de node versies compatibel zijn met uw testsuite en browsers. Als u ondersteuning nodig heeft op selenium grid, is dit off topic neem dan contact met mij op, ik heb verschillende kubernetes en aws fargate voorbeelden van de plank om gemakkelijk te integreren in uw private cloud landschap (Azure, Google cloud, AWS)
Als u het lokaal wilt uitproberen, gebruik dan een docker compose bestand van de selenium github om het op te zetten en te laten draaien
Docker Compose Bestand voor Selenium Grid
Maak een docker-compose.yml bestand in uw projectmap en voeg de volgende inhoud toe:
version: '3'
services:
selenium-hub:
image: selenium/hub:4.1.1-20211217
container_name: selenium-hub
ports:
- "4444:4444"
chrome-node:
image: selenium/node-chrome:4.1.1-20211217
container_name: chrome-node
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.1.1-20211217
container_name: firefox-node
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
Start Selenium Grid: Navigeer naar de map met uw docker-compose.yml bestand. Voer het volgende commando uit om alle services te starten
docker-compose up -d
- Toegang tot de Selenium Grid Console: Zodra de containers actief zijn, kunt u toegang krijgen tot de Selenium Grid console door te navigeren naar http://localhost:4444 in uw webbrowser. Hier kunt u de status van uw Grid en de verbonden nodes zien.
- Tests uitvoeren: Nu kunt u uw Selenium tests uitvoeren tegen de Grid. Configureer uw test om de remote WebDriver te gebruiken die wijst naar http://localhost:4444/wd/hub.
- Nodes schalen: Als u meer Chrome of Firefox nodes nodig heeft, kunt u ze schalen met Docker Compose. Bijvoorbeeld, om te schalen naar 3 Chrome nodes, voer uit:
- Selenium Grid stoppen: Om de containers, netwerken en volumes die zijn gemaakt door docker-compose up te stoppen en te verwijderen, voer uit:
docker-compose down
Aanpassing
- Selenium Versie: U kunt de versie van Selenium in de image tags (bijv., selenium/hub:4.1.1-20211217) wijzigen naar de gewenste versie die uw testsuite ondersteunt.
- Browser Versies: Pas op dezelfde manier de browser versies aan door verschillende tags te selecteren voor selenium/node-chrome en selenium/node-firefox images volgens uw testvereisten.
- Extra Nodes: Om meer browser nodes toe te voegen (bijv., Edge, Opera), kopieer de service definities voor chrome-node of firefox-node en pas het gebruikte image aan. I