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 :

Bip-Bip-rapide

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 !

Image-Perroquet

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 :

Browser

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

Chat

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 test tĂ©lĂ©chargez notre livre blanc !

Vous souhaitez plus d’informations sur ces outils ?

Vous avez un projet d’automatisation de test ?