Astuce n ° 1 de l'ingénieur de test: ancrez votre grille de sélénium

Rebonjour. Nous avons traduit une note utile pour vous avant le début du cours Java QA Engineer .










Chaque année , des ingénieurs en automatisation de test du monde entier recherchent les derniers outils et techniques pour rendre leur environnement d'automatisation de test plus stable, plus rapide et plus facile à utiliser et à entretenir. Ceci est vital pour s'assurer que leurs cadres sont mis en œuvre à grande échelle à tout moment dans leur entreprise. Quoi qu'il en soit, les cadres obsolètes gonflés sont rapidement démodés.



Selenium Grid est connu pour être difficile à configurer, instable et difficile à déployer et / ou à contrôler la version dans un pipeline CI. Un moyen plus simple, plus stable et plus pratique consiste à utiliser les images Selenium Docker prédéfinies.



Remarque : le seul inconvénient de cette méthode est qu'elle n'est pas prise en charge par IE (Internet Explorer), car le système d'exploitation Windows ne peut actuellement pas être placé dans un conteneur.


Préparation au travail



Pour commencer, vous devez d'abord installer Docker et Docker Compose sur votre ordinateur. Si vous utilisez Windows 10 ou Mac, les deux seront installés à l'aide de Docker Desktop .



Faire fonctionner votre grille



Le référentiel officiel Selenium Docker Hub contient des images Docker prédéfinies pour vos nœuds Selenium Hub, Firefox et Chrome.



Le moyen le plus simple de les utiliser dans votre Selenium Grid local consiste à créer un fichier Docker Compose dans le répertoire racine de votre projet. Nommez simplement le fichier docker-compose.yml.



J'ai inclus un exemple ci-dessous qui crée la grille suivante:



  • Un hub Selenium
  • Un nœud Chrome
  • Un nœud Firefox


#docker-compose.yml
version: "3"
services:
  selenium-hub:
	image: selenium/hub:3.141.59-neon
	container_name: selenium-hub
	ports:
  	- "4444:4444"
  chrome:
	image: selenium/node-chrome:3.141.59-neon
	volumes:
  	- /dev/shm:/dev/shm
	depends_on:
  	- selenium-hub
	environment:
  	- HUB_HOST=selenium-hub
  	- HUB_PORT=4444
  firefox:
	image: selenium/node-firefox:3.141.59-neon
	volumes:
  	- /dev/shm:/dev/shm
	depends_on:
  	- selenium-hub
	environment:
  	- HUB_HOST=selenium-hub
  	- HUB_PORT=4444


Le fichier Docker Compose décrit comment configurer votre Grid. Pour plus d'informations sur la création de fichiers Docker Compose, consultez la documentation officielle .



Pour démarrer votre Grid, utilisez simplement n'importe quel terminal ( PowerShellou cmdsous Windows), dans lequel exécutez la commande suivante à partir du répertoire racine de votre projet:



docker-compose up


Connexion au réseau



Vous pouvez vous connecter à votre Selenium Grid de la même manière que d'habitude, puisque le Hub écoute sur le port 4444 de votre machine locale. Voici un exemple où nous avons configuré notre pilote pour utiliser notre nœud Chrome.



// Driver.java
protected static RemoteWebDriver browser;
DesiredCapabilities cap = new DesiredCapabilities();
ChromeOptions chromeOptions = new ChromeOptions();
           	 
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);           	 
cap.setBrowserName("chrome");
           	 
driver = new RemoteWebDriver(cap);


Ensuite, vous pouvez utiliser la bibliothèque TestNG pour exécuter des tests sur plusieurs nœuds en parallèle comme d'habitude.



Il est à noter que plusieurs navigateurs peuvent être lancés sur chaque nœud. Cependant, cela n'est pas recommandé et l'utilisation d'un navigateur par nœud est considérée comme la meilleure pratique pour des performances optimales.



Trucs et astuces supplémentaires



Si vous voulez voir ce qui se passe dans le navigateur afin de déboguer vos tests, il vaut la peine d'avoir une debugversion de votre docker-compose.ymlfichier qui charge les debug nœuds du navigateur . Ils contiennent un serveur VNC, vous pouvez donc regarder le navigateur pendant l'exécution du test.



Il est également possible d'exécuter des navigateurs sans tête pour augmenter la vitesse (de la manière habituelle), et Selenium fournit également des baseversions des images, afin que vous puissiez créer vos propres images si vous avez besoin d'installer un logiciel supplémentaire.



Vous pouvez également déployer votre Grid sur Kubernetes ou Swarm pour créer une Grid stable pour votre pipeline CI . Cela garantit une récupération ou un remplacement rapide des dockers en cas de panne.







Lire la suite:








All Articles