Comment rendre vos scripts Selenium plus rapides ?

Vos scripts Selenium sont trop lents ? Nous vous expliquons comment les rendre plus rapides !

De nombreuses QA’s utilisent aujourd’hui Selenium WebDriver pour automatiser leurs cas de test des applications Web. Ce n’est pas une surprise car Selenium WebDriver est :

  • Gratuit
  • Open source
  • Indépendant de la langue
  • Indépendant du système d’exploitation

Mais les scripts Selenium WebDriver sont généralement lents. Plusieurs éléments peuvent améliorer la vitesse des scripts Selenium WebDriver :

Scripts Selenium WebDrive

1. Utilisez des sélecteurs rapides pour vos scripts Selenium

Lors de la sélection du localisateur, commencez par les plus rapides:

1.1 Recherche par ID

Cela fonctionne si l’élément html a l’attribut id.

C’est le localisateur le plus rapide car il utilise la commande javascript document.getElementById () qui est optimisée pour tous les navigateurs.

1.2 Sélecteur NAME

Cela fonctionne si l’élément a un attribut de nom.

1.3 Sélecteur CSS

Il est plus rapide que XPATH mais pas aussi flexible.

1.4 Sélecteur XPATH

C’est la stratégie la plus flexible pour créer des localisateurs.

Mais les sélecteurs xpath sont les plus lents de tous car le navigateur dom de la page Web doit être parcouru pour trouver l’élément.

2. Ne testez pas la même fonctionnalité deux fois !

Ne pas répéter deux fois - selenium

Image : seleniumjava.com

Assurez-vous que vos scripts Selenium ne vérifient pas encore et encore les mêmes fonctionnalités !

Si vous avez vérifié que la connexion fonctionne correctement dans un script, il n’y a aucun avantage à la vérifier à nouveau dans un autre script.

3. Écrire de bons tests

Les bons tests écrits sont des tests rapides. Ils sont créés en suivant quelques règles simples :

  • Élimine la duplication des étapes
  • Gardez les scripts indépendants
  • Écrivez juste assez d’étapes pour passer de A à B le plus rapidement possible
  • Supprimer les étapes qui ne sont pas liées au résultat final

4. Utilisez uniquement des attentes explicites pour vos scripts Selenium

Image Tigre

Image : seleniumjava.com

L’un des meilleurs moyens de rendre un script plus rapide consiste à n’utiliser que des attentes explicites.

Si vos scripts de test utilisent des délais et des attentes implicites comme celui-ci :

WebDriver driver = new FirefoxDriver();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.get(“http://somedomain/url_that_delays_loading”);

WebElement myElement=driver.findElement(By.id(“myElement”));

Remplacez-les par des attentes explicites :

WebDriver driver = new FirefoxDriver();

driver.get(“http://somedomain/url_that_delays_loading”);

WebElement element = (new WebDriverWait(driver, 10))

.until(ExpectedConditions.presenceOfElementLocated(By.id(“element”)));

Les performances du script sont meilleures avec des attentes explicites car les éléments HTML sont accessibles dès qu’ils sont disponibles.

Aucun temps d’attente supplémentaire n’est nécessaire.

5. Réutilisez l’instance du navigateur pour vos scripts Selenium

Une classe JUNIT typique comprend les composants suivants :

  1. constructeur
  2. méthode setUp ()
  3. méthode tearDown ()
  4. scripts de test

La méthode setUp () utilise l’annotation @Before et s’exécute avant chaque script de test.

Son objectif est généralement de créer l’objet pilote et d’ouvrir la fenêtre du navigateur.

La méthode tearDown () utilise l’annotation @After et s’exécute après chaque script de test.

Son but est de détruire l’objet pilote et de fermer la fenêtre du navigateur.

Chaque script de test utilise sa propre instance de navigateur lorsque @Before et @After sont utilisés :

Une classe JUNIT - Selenium

Image : seleniumjava.com

setUp() –> opens browser

  • Test Script 1

tearDown() –> closes browser

setUp() –> opens browser

  • Test Script 2

tearDown() –> closes browser

setUp() –> opens browser

  • Test Script 3

tearDown() –> closes browser

setUp() –> opens browser

  • Test Script 4

tearDown() –> closes browser

6. Ne chargez aucune image dans la page web

Comment rendre vos scripts Selenium plus rapides ?

Image : seleniumjava.com

De nombreuses pages du site sont très riches en images et ne se chargent donc pas rapidement dans le navigateur.

Si la page se charge plus rapidement dans le navigateur, le script sera également plus rapide.

La page se chargera plus rapidement si aucune image n’est chargée.

Cela peut être accompli en configurant un nouveau profil pour le navigateur et en désactivant le chargement des images pour celui-ci.

7. Utilisez des navigateurs et des pilotes sans tête (headless)

Si vous n’avez pas besoin d’un vrai navigateur ou si vous utilisez une intégration continue, les navigateurs et les pilotes sans tête peuvent accélérer vos scripts.

Un navigateur sans tête est un navigateur qui n’a pas d’interface utilisateur.

Les navigateurs headless les plus populaires sont HTML UNIT et Phantom JS.


Source: seleniumjava.com

Adaptation : Zied Hannachi / Consultant test automation / All4Test

Pour en savoir plus sur les frameworks d’automatisation des tests téléchargez notre livre blanc !

Vous souhaitez plus d’informations sur ces outils ?

Vous avez un projet d’automatisation de test ? 

Formez-vous sur Selenium qui vous permettra de vous familiariser avec la rédaction de scripts Selenium pour l’automatisation du test des applications de navigateur. Notre partenaire UpSkill4IT vous propose cette formation sur Selenium – Automatisation des tests.