Pour bâtir les questions d'entretien d'un automaticien de test Selenium Java, partez de la stack des annonces : Selenium WebDriver, Java avec JUnit ou TestNG, Cucumber pour les scénarios Gherkin, RestAssured pour les API, Maven et Jenkins pour l'exécution. Cette combinaison est en place depuis des années sur beaucoup de gros projets web, et de nombreux postes consistent à reprendre une suite existante plutôt qu'à en créer une.
Commencez par la synchronisation. Un automaticien peu expérimenté met des Thread.sleep, puis allonge les délais quand la CI échoue. Un profil solide écrit des attentes explicites sur la bonne condition, isole ses données pour pouvoir paralléliser et sait dire, devant un échec de nuit, si le produit, le test ou l'environnement est en cause. Le niveau Java compte aussi : un framework de tests est du code qu'on relit, qu'on factorise et qu'on versionne.
Selenium a beaucoup changé depuis la version 4. Selenium Manager télécharge seul le pilote du navigateur depuis la 4.6, la Grid 4 tourne en conteneurs Docker et le protocole WebDriver BiDi permet de lire la console ou d'intercepter le réseau. Une personne qui gère encore ses pilotes à la main n'a pas suivi ces versions. Le PDF contient un cas de 20 minutes sur une suite Cucumber instable à reprendre.
La stack Selenium Java, composant par composant
Selenium WebDriver 4
La bibliothèque qui pilote un vrai navigateur selon le standard W3C WebDriver. Depuis la version 4.6, Selenium Manager trouve et télécharge le pilote adapté. WebDriver BiDi, le nouveau protocole bidirectionnel du W3C, arrive progressivement pour écouter la console ou intercepter le réseau. La maîtrise des attentes reste le premier point à vérifier.
Java, JUnit 5 ou TestNG
Le langage du framework et le moteur qui lance les tests, les regroupe et les parallélise. Un automaticien Java doit écrire un code propre et relisible : classes bien découpées, collections, exceptions, pas de copier-coller d'une classe de test à l'autre.
Cucumber-JVM
Les scénarios s'écrivent en Gherkin (Given, When, Then) et chaque phrase est reliée à une méthode Java, la step definition. Le partage d'état entre classes de steps passe par l'injection de dépendances, PicoContainer ou Spring. Des steps bien écrits restent lisibles par le métier.
Page Object
Le patron qui range les localisateurs et les actions de chaque page dans une classe. Les tests appellent des méthodes métier et ne touchent jamais directement aux éléments. C'est ce qui permet de survivre aux évolutions de l'interface sans réécrire cent tests.
RestAssured
La bibliothèque Java de test d'API REST, avec une syntaxe given, when, then. Elle sert aux tests d'API eux-mêmes et à préparer les données des tests IHM, bien plus vite qu'en passant par l'écran.
Maven
L'outil de build qui gère les dépendances et lance les tests, avec Surefire pour les tests unitaires et Failsafe pour les tests d'intégration. Les profils et les propriétés système permettent de choisir l'environnement ou le lot de tests.
Selenium Grid et Docker
La Grid répartit les sessions de navigateur sur plusieurs nœuds. Les images officielles docker-selenium la font tourner en conteneurs, sur un poste, en Docker Compose ou sur Kubernetes. Sans elle, une grosse suite ne tient pas dans une nuit.
Jenkins ou GitLab CI
La chaîne d'intégration continue qui lance les tests à chaque merge ou chaque nuit, publie les résultats et archive les captures. Un Jenkinsfile versionné vaut mieux qu'un job configuré à la main.
Allure et rapports
Le rapport de tests avec étapes, captures, pièces jointes et historique. C'est lui qui permet de trier un échec en quelques minutes, à condition que le framework y attache les bonnes informations.
Le poste existe surtout dans des équipes QA rattachées à de gros projets applicatifs, souvent avec une suite déjà en place de plusieurs centaines de scénarios. Le travail se partage entre l'écriture de nouveaux tests, la maintenance de ceux qui cassent à chaque évolution de l'interface et l'analyse des échecs de nuit. Un senior conçoit le framework, décide de ce qui passe par l'API plutôt que par l'écran et règle le parallélisme sur la Grid. Beaucoup de juniors viennent du test manuel et ont appris Java ensuite. Vérifiez leur Java sur un petit exercice, en plus des questions Selenium.
Compétences à contrôler chez un automaticien Selenium Java
- Synchronisation et attentes WebDriver
- Conception du framework et Page Object
- Cucumber-JVM et partage d'état
- Tests d'API avec RestAssured
- Exécution parallèle sur Selenium Grid
- Intégration CI et diagnostic des échecs
Cinq questions sur WebDriver, Cucumber et la CI
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Un test passe en local et échoue une fois sur cinq dans Jenkins avec une NoSuchElementException. Que regardez-vous ?
Une bonne réponseLa synchronisation d'abord : l'élément n'est pas encore là parce que la page charge en asynchrone et que la machine de CI est plus lente. Il remplace les Thread.sleep par une attente explicite (WebDriverWait avec la condition réelle : élément visible, cliquable, disparition d'un loader) et ne mélange pas attentes implicites et explicites. Puis les écarts d'environnement : taille de fenêtre en headless qui change la mise en page, données partagées avec un autre test lancé en parallèle. Le rapport doit fournir une capture, le code HTML de la page et les logs du navigateur au moment de l'échec.
Signal d'alerteAllonger le Thread.sleep, ou activer une relance automatique sans chercher la cause.
Question 2 · junior à confirmé
Décrivez le Page Object d'une page de connexion. Qu'est-ce qui n'a rien à y faire ?
Une bonne réponseDes localisateurs privés, des méthodes qui parlent métier (seConnecter(login, motDePasse) qui renvoie l'objet de la page suivante), les attentes encapsulées dans la page. Les assertions restent dans le test, le driver est reçu par le constructeur, les données viennent de l'extérieur. Les éléments communs (menu, tableau, fenêtre modale) deviennent des composants réutilisables.
Signal d'alerteDes WebElement publics manipulés depuis les tests, des assertions et des Thread.sleep dans le Page Object, un driver statique global.
Question 3 · confirmé
Deux classes de step definitions Cucumber doivent partager le client créé au début du scénario. Comment faites-vous ?
Une bonne réponseAvec l'injection de dépendances de Cucumber-JVM (cucumber-picocontainer, Spring ou Guice) : un objet de contexte du scénario, injecté par le constructeur dans chaque classe de steps et recréé à chaque scénario. Le driver et les données passent par ce contexte.
Signal d'alerteDes champs static, ou un singleton global, qui laissent fuir l'état d'un scénario à l'autre.
Question 4 · senior
La suite de 800 tests dure trois heures. Comment la ramenez-vous sous trente minutes ?
Une bonne réponseIl mesure d'abord : tests les plus longs, attentes fixes, préconditions passées par l'écran. Il crée les données et ouvre la session par API au lieu de l'IHM. Il parallélise (JUnit 5, TestNG ou le mode parallèle de Cucumber) avec un driver par thread et des données isolées, sur une Selenium Grid en conteneurs. Il découpe la suite : un lot court à chaque merge, la suite complète la nuit.
Signal d'alerte« On ajoute des machines », sans toucher aux sleeps ni aux dépendances entre tests.
Question 5 · confirmé
Comment testez-vous avec RestAssured une API de création de commande, et comment la combinez-vous avec un test IHM ?
Une bonne réponsegiven() avec l'authentification et un corps construit à partir d'un objet Java, when().post(), then() avec le code 201 et des vérifications sur le corps. La réponse est désérialisée en objet ou validée contre un schéma JSON, et les cas d'erreur (400, 401, 409) ont leurs tests. Les logs de requête et de réponse sortent en cas d'échec. Pour l'IHM : la commande est créée par API et contrôlée à l'écran, ou passée à l'écran et vérifiée par API.
Signal d'alerteTout passer par l'IHM, ou ne vérifier que le code 200.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Automaticien Selenium Java : vos questions de recruteur
Selenium a-t-il encore sa place face à Playwright et Cypress ?
Oui, en particulier là où une suite Java existe déjà. Selenium reste le standard W3C, couvre tous les grands navigateurs et s'intègre aux Grid et fermes de navigateurs en place. Playwright et Cypress offrent une attente automatique et un meilleur outillage de diagnostic, et séduisent les nouveaux projets en TypeScript. Un bon automaticien Selenium connaît leurs atouts et sait expliquer quand une migration se justifie.
Quel niveau de Java attendre d'un automaticien de test ?
Un niveau de développeur junior solide : programmation objet, héritage et composition, collections, génériques simples, streams, gestion des exceptions, Maven et Git. Il n'a pas besoin de connaître Spring en profondeur ni la programmation concurrente avancée, mais il doit comprendre pourquoi un état static casse le parallélisme. Faites-lui relire une classe de test mal écrite et demandez ce qu'il changerait.
Comment évaluer un automaticien Selenium avec un test technique ?
Préparez un petit dépôt : une page de démonstration, trois tests dont un instable à cause d'un Thread.sleep et d'un driver static. Demandez de stabiliser le test, puis d'en ajouter un nouveau en suivant le Page Object en place. Quarante-cinq minutes en direct suffisent. Vous voyez la façon de diagnostiquer, la qualité du Java et le respect de l'architecture existante.
Cucumber est-il indispensable sur un poste Selenium Java ?
Non. Cucumber est utile quand le métier lit ou écrit réellement les scénarios. Sinon, il ajoute une couche à maintenir, et des tests JUnit ou TestNG bien nommés suffisent. Beaucoup d'annonces l'exigent parce que la suite existante l'utilise. Vérifiez alors que la personne sait écrire un Gherkin déclaratif et partager l'état entre steps par injection de dépendances.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.




