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 :

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 !

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

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 :
- constructeur
- méthode setUp ()
- méthode tearDown ()
- 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 :

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

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.