Articles

Questions d’entrevue de TestNG

Posted by admin

Dans ce cours dédié à TestNG, nous avons essayé de couvrir tous les sujets liés au framework de TestNG. J’espère que les lecteurs ont pratiqué TestNG avec un mélange de sujets consacrés à ce cours. De plus, exceller dans le cadre de TestNG et garder ses concepts sur les conseils vous aidera à booster votre carrière et à ajouter une autre plume dans votre chapeau. En outre, cela ouvrira également plus de portes à des opportunités et à des expériences sur différents projets et différentes entreprises dans votre carrière professionnelle. Mais pour saisir ces opportunités, vous devez relever un défi de plus, à savoir une entrevue. Par conséquent, nous couvrirons les questions d’entrevue de TestNG dans cet article.

Par conséquent, pour aider nos collègues testeurs dans le même sens, nous avons préparé une liste de questions d’entrevue de TestNG disponibles dans ces postes, qui sont posées couramment dans les entretiens liés aux postes d’Ingénieur de test ou d’Ingénieur en automatisation. Cependant, la chose à retenir ici est que bien que ces questions touchent à tous les concepts des questions d’entrevue de TestNG, le travail acharné restant est la pratique.

Par conséquent, je vous recommande de parcourir tous les sujets et de les pratiquer à fond car il n’y a pas de contraintes dures et rapides sur ce qu’un intervieweur peut demander à la personne interrogée. En outre, une grande partie de ces questions prendra la référence de Selenium avec TestNG car TestNG est utilisé assez fortement avec le pilote web Selenium. Par conséquent, ces questions d’entrevue de TestNG sont pour référence seulement.

Les questions ci-dessous ont été divisées en sous-parties pour vous aider à vous souvenir du concept de manière plus claire.

Bases de TestNG

Qu’est-ce que le framework TestNG ?

Le framework TestNG est un framework de test permettant d’effectuer des tests dans le langage de programmation java. De plus, le « NG » dans TestNG signifie « Prochaine génération ». » Cedric Beust l’a développé et s’est inspiré du framework de test JUnit et NUnit. Par la suite, vous pouvez apprendre en détail Ce qu’est le framework TestNG, ici.

Comment exécutez-vous le script TestNG ?

Le script TestNG est exécuté en cliquant avec le bouton droit sur la classe TestNG – > Run As – > TestNG Test. Par La Suite, apprenez À Installer TestNG Dans Eclipse Et IntelliJ.

Quels sont les avantages de TestNG ?

L’une des questions courantes de l’entretien de TestNG porte sur les avantages de TestNG.

TestNG présente les avantages suivants:

  • Tout d’abord, TestNG est capable de produire automatiquement des rapports avec toutes les informations nécessaires telles que les tests ratés, les tests réussis, les temps d’exécution des tests, etc.
  • Deuxièmement, TestNG utilise des annotations telles que @BeforeMethod, @Test, etc., qui sont facilement compréhensibles car leur dénomination est après leur travail.
  • Troisièmement, TestNG fournit un regroupement de méthodes par lesquelles nous pouvons regrouper plusieurs méthodes en une seule unité. En d’autres termes, le regroupement effectue des opérations sur tous les tests d’un groupe à la fois plutôt qu’individuellement.
  • Quatrièmement, TestNG fournit un paramétrage de la méthode de test, ce qui signifie que nous pouvons fournir des paramètres dans le TestNG et appeler la fonction à plusieurs reprises avec des valeurs différentes. De plus, le paramétrage aide dans les tests pilotés par les données dans TestNG.
  • Cinquièmement, TestNG fournit la hiérarchisation des méthodes. En d’autres termes, en définissant les priorités des méthodes dans TestNG, nous pouvons modifier la séquence d’exécution par défaut des méthodes de test selon notre souhait.
  • En plus de ce qui précède, TestNG permet des tests parallèles, ce qui augmente l’efficacité et améliore le temps de fonctionnement global des méthodes de test.
  • Avec le framework TestNG, vous pouvez facilement vous intégrer à d’autres outils tels que Maven, Jenkins, etc.
  • De plus, TestNG fournit une fonctionnalité permettant d’exécuter plusieurs méthodes de test sur différents navigateurs pour tester les problèmes de compatibilité entre navigateurs sur votre site Web. Il s’agit de tests inter-navigateurs.
  • De plus, TestNG nous permet d’exécuter les tests séparément. Donc, si vous exécutez les tests et qu’un seul test a échoué, vous pouvez exécuter ce test indépendamment lors de la prochaine exécution.
  • De plus, TestNG permet aux méthodes de test de dépendre les unes des autres. C’est aussi appelé Dépendance de test dans TestNG.
  • Enfin, TestNG fournit un tas de méthodes d’assertion pour tester plus efficacement.

Par la suite, vous pouvez en savoir plus sur les avantages du framework TestNG ici.

Cas de test TestNG Et Suites

Quelle est la différence entre un test TestNG et une suite de tests TestNG ?

La suite de tests TestNG fait référence à une collection de tests que nous pouvons exécuter simultanément à l’aide du fichier XML TestNG. D’un autre côté, un test TestNG est un fichier de cas de test unique, et lorsque nous disons « nous exécutons un cas de test TestNG », nous voulons simplement dire que nous exécutons un seul fichier de cas de test.

En savoir plus sur la suite de tests TestNG.

Définissez l’ordre correct des balises dans le fichier XML TestNG.

L’ordre correct suivi pour exécuter la suite TestNG à partir du fichier XML est le suivant:

XHTML

1
2
3
4
5

< suite>
< essai>
< cours>
< classe>
< méthodes>

Les balises de fermeture n’apparaissent pas ici car c’est juste à des fins de démonstration. Par la suite, vous pouvez en savoir plus sur la façon d’exécuter des suites de TestNG via XML?

Annotations TestNG

Quels sont les types d’annotations utilisés dans TestNG (Dans la séquence d’exécution / la hiérarchie) ?

Il existe neuf types d’annotations utilisées dans TestNG. Dans l’ordre de leur séquence d’exécution, ils sont les suivants:

  • @
  • @BeforeTest
  • @BeforeClass
  • @BeforeMethod
  • @Test
  • @AfterMethod
  • @AfterClass
  • @AfterTest
  • @AfterSuite

Quelles sont les catégories d’annotations dans TestNG ?

Les annotations TestNG se divisent en trois catégories:

  • Annotations de condition préalable : Les annotations de cette catégorie s’exécutent avant le test. Il se compose des annotations suivantes:
    • @BeforeMethod
    • @BeforeClass
    • @BeforeSuite
    • @BeforeTest
  • Annotations de test : Les annotations de cette catégorie sont définies juste avant les méthodes de test. De plus, il se compose des annotations suivantes:
    • @Test
  • Annotations de Postcondition : Les annotations de cette catégorie s’exécutent après les méthodes de test. De plus, il se compose des annotations suivantes:
    • @AfterMethod
    • @AfterClass
    • @AfterTest
    • @AfterSuite

Par la suite, vous pouvez en savoir plus à ce sujet ici, Comment utiliser les annotations TestNG à l’aide de Selenium.

Rapports de TestNG

Quels sont les types de rapports générés par défaut dans TestNG ?

TestNG génère deux types de rapports par défaut une fois l’exécution de toutes les méthodes de test terminée. Elles le sont:

  • Rapports par e-mail
  • Rapports d’index

Par la suite, vous pouvez en savoir plus ici, Que sont les rapports par e-mail et d’index dans TestNG?

Où le rapport électronique est-il généré et enregistré dans TestNG ?

Les rapports par courrier électronique sont générés dans le dossier projet et le sous-dossier test-output. Ce rapport est disponible sous la forme « emailable – report.html » par défaut.

Où le rapport d’index est-il généré et enregistré dans TestNG ?

Le rapport d’index est généré sous le dossier de projet et le sous-dossier de sortie de test. De plus, ce rapport est disponible sous la forme « index.html » par défaut.

Par la suite, vous pouvez en savoir plus ici, Comment afficher et analyser les rapports dans TestNG?

Priorités de TEST

Quelles sont les priorités dans TestNG?

Les priorités dans TestNG sont un paramètre qui déclare la priorité à une méthode de test spécifique. TestNG utilise la méthode d’exécution alphabétique pour exécuter sa méthode de test. Grâce aux priorités, nous pouvons modifier la séquence de l’exécution du test. De plus, la priorité peut être définie comme une valeur entière et inférieure à cette valeur entière ; plus la priorité est élevée.

Par la suite, vous pouvez en savoir plus ici, quelles sont les priorités dans TestNG?

Comment définiriez-vous les priorités dans TestNG?

La priorité de TestNG est définie par la syntaxe suivante :

@Test(priority=1)

fonction publique void(){

// code de test

}

Un exemple de priorisation dans TestNG peut être le suivant:

Par la suite, vous pouvez en savoir plus ici, Comment définir les priorités et le séquençage dans TestNG?

Pourquoi créons-nous le fichier XML dans TestNG?

Nous utilisons le fichier XML dans TestNG à de nombreuses fins. Le fichier XML de TestNG nous aide:

  • Pour exécuter plusieurs tests en une seule exécution.
  • Deuxièmement, cela nous aide également à inclure et à exclure les méthodes et les groupes de test.
  • Troisièmement, cela nous aide également à ajouter des dépendances dans les groupes.
  • Quatrièmement, cela aide à exécuter les méthodes de cas de test via des paramètres.
  • Enfin, il aide à l’exécution de l’exécution de test parallèle.

En savoir plus sur la façon d’inclure et d’exclure des groupes dans TestNG via le fichier XML?

Paramètres de TestNG

Qu’est-ce que le paramétrage dans TestNG?

Dans TestNG, le paramétrage exécute une méthode de test plusieurs fois avec des valeurs différentes. Un autre nom pour ce processus est le test piloté par les données dans TestNG. Nous pouvons acquérir le paramétrage dans TestNG de deux manières:

  • Tout d’abord, nous pouvons y parvenir via le fichier XML.
  • Deuxièmement, nous pouvons y parvenir via les fournisseurs de données dans TestNG.

En savoir plus sur l’exécution de tests paramétrés dans TestNG via XML et des fournisseurs de données.

Quels sont les paramètres optionnels dans TestNG ?

Les paramètres optionnels fonctionnent de la même manière que le cas par défaut dans le paramétrage de TestNG. Nous utilisons le paramètre facultatif lorsqu’aucun autre paramètre n’est défini pour cette méthode de scénario de test. De plus, l’annotation @Optional déclare le paramètre optionnel. Nous ne définissons pas le paramètre @Optional au-dessus de la définition de la méthode de test mais à côté de l’endroit où la méthode est déclarée. Par la suite, l’extrait de code suivant démontre la déclaration des paramètres optionnels dans TestNG:

En savoir plus sur la façon d’implémenter des paramètres optionnels dans TestNG?

Écrivez le code coupé pour transmettre les valeurs 1 et 2 aux paramètres val1 et val2 via le fichier XML.

Pour passer les valeurs dans les paramètres de TestNG, nous utilisons la balise < parameter > dans le fichier XML de TestNG. De plus, il contient deux attributs:

  • nom : nom de la variable de paramètre.
  • valeur : la valeur à insérer dans cette variable.

Observez le fichier XML suivant désignant le même concept.

En savoir plus sur la façon de passer les paramètres dans TestNG via le fichier XML?

Groupes de test

Quelle est l’importance des groupes dans TestNG?

Une autre question importante de l’entrevue de TestNG porte sur son importance.Les groupes

sont la collection de plusieurs méthodes de cas de test combinées en une seule unité. En groupant, nous pouvons opérer directement sur le groupe, qui réfléchira à toutes les méthodes de cas de test sous celui-ci. De plus, dans TestNG, nous pouvons également créer un groupe de groupes en tant qu’unité de méthodes de test plus grande.

En savoir plus sur la création d’un groupe de groupes dans TestNG ?

Comment définissez-vous les groupes dans TestNG?

La réponse à ces questions d’entrevue de TestNG est que nous définissons les groupes dans TestNG en passant le paramètre « groupes » à l’annotation de test avec la valeur étant le nom du groupe. Dans l’exemple ci-dessous, la méthode de scénario de test sera sous le groupe nommé « group1 ».

@Test(groupes = {« groupe 1 »})

// méthode de cas de test

Comment excluez-vous un groupe du cycle d’exécution du test?

L’exclusion d’un groupe dans TestNG indique que ce groupe particulier s’abstient de s’exécuter pendant l’exécution, et TestNG l’ignorera. De plus, le nom du groupe que nous voulons exclure est défini dans le fichier XML par la syntaxe suivante:

XHTML

1
2
3
4
5
6

<groups>
<run>
<exclude name = « demo »>
</exclude>
</run>
</groups>

En savoir plus sur Comment exclure des groupes dans TestNG ?

Pouvons-nous utiliser l’expression régulière dans les groupes de TestNG? Écrivez un fichier XML de démonstration pour le même.

Oui, les expressions régulières peuvent être utilisées dans TestNG pour exécuter les groupes qui ont un motif typique dans leur nom. Par exemple, si je veux exécuter tous les groupes avec un nom commençant par « abc », je peux écrire l’expression régulière comme abc.* dans le fichier XML.

Une démonstration pour l’exemple ci-dessus est la suivante:

En savoir plus sur l’utilisation de l’expression régulière dans les groupes de TestNG?

TestNG Affirme

Que comprenez-vous par les assertions dans TestNG?

Un actif est un morceau de code qui nous aide à vérifier si le résultat attendu et le résultat réel sont égaux ou non. Dans TestNG, nous exploitons la classe « Assert » intégrée et une grande partie de sa méthode pour déterminer si le scénario de test a réussi ou échoué. De plus, dans TestNG, un cas de test agit comme une « réussite » si aucune des méthodes assert ne lève d’exception pendant l’exécution. La syntaxe de TestNG assert est la suivante :

Assert.Méthode (réelle, attendue, message);

En savoir plus sur les assertions TestNG et Comment les utiliser dans TestNG ?

Décrivez cinq assertions TestNG courantes.

Les cinq assertions de TestNG courantes sont:

  • assertEqual(Chaîne réelle, Chaîne attendue)
  • assertEqual(Chaîne réelle, Chaîne attendue, Message de chaîne)
  • assertEquals(booléen réel, booléen attendu)
  • assertTrue(condition)
  • assertTrue(condition, message)
  • assertFalse(condition)
  • assertFalse(condition, message)

Bien qu’il convient de noter qu’il y a beaucoup plus d’assertions fournies par TestNG. En savoir plus sur les types d’assertions dans TestNG et leur syntaxe.

Quels sont les différents types d’assert dans TestNG ?

Il existe deux types d’assert dans TestNG:

  • Assertions douces
  • Assertions dures

En savoir plus sur les assertions douces et dures dans TestNG ?

Définissez les assertions douces dans TestNG et décrivez en quoi elles sont différentes des assertions dures.

Les assertions douces dans TestNG signifient que l’exécution des tests ne s’arrêterait pas même si l’assertion lève une exception entre l’exécution. En plus de cela, TestNG n’inclut pas les assertions logicielles par défaut dans TestNG, donc une organisation supplémentaire.testng.affirmer.L’importation de paquets Softassert est requise.

De plus, les assertions douces sont différentes des assertions dures car les assertions dures arrêtent l’exécution du scénario de test dès que la première assertion échoue et fournit les résultats. Hard assert inclut par défaut dans TestNG.

En savoir plus sur ce que sont les soft assert et comment les utiliser dans TestNG ?

Tests dépendants de TestNG

Qu’entend-on par dépendance dans TestNG?La dépendance

dans TestNG est un processus qui rend un test dépendant de l’autre test. En fournissant des dépendances dans les méthodes de test, nous assurons qu’une méthode de test B ne s’exécuterait que si la méthode de test A s’exécute (étant donné que B dépend de A). De plus, dans TestNG, nous pouvons également avoir une méthode de test dépendante de plusieurs tests.

En savoir plus sur les tests dépendants simples et multiples dans TestNG.

Comment créez-vous des dépendances dans TestNG?

Nous pouvons créer les tests dépendants dans TestNG en fournissant le paramètre dependsonMethods sur l’annotation @Test. La valeur de l’attribut est le nom de la méthode dont nous voulons que cette méthode dépende. L’utilisation de cette méthode est la suivante :

Ici, la méthode SignIn a été rendue dépendante de la méthode OpenBrowser. En savoir plus sur la création de dépendances dans TestNG ?

Comment créer une dépendance via le fichier XML?

TestNG nous permet également de créer des dépendances entre groupes via le fichier XML TestNG. De telles dépendances dénotent la dépendance d’un groupe à un autre. Le code suivant montre comment atteindre le même objectif:

Ici, le groupe de connexion dépend du groupe openbrowser. En savoir plus sur la création de dépendances de groupe dans TestNG ?

Quand utilisons-nous « dependsOnGroups » dans TestNG?

TestNG nous donne la liberté de faire dépendre un seul test d’un groupe de tests. Lorsque nous voulons exécuter de cette manière, nous utilisons l’attribut dependsOnGroups dans le fichier de cas de test TestNG. La valeur de cet attribut est le nom du groupe dont nous voulons que cette méthode dépende. Ci-dessous est un exemple démontrant la même chose:

En savoir plus sur l’utilisation de dependsOnGroups dans TestNG?

Divers

Quelle est la signification du « délai d’attente » dans le TestNG?

Dans TestNG, « timeout » est un paramètre qui définit le temps maximum qu’une méthode peut prendre pour l’exécution. Le paramètre timeout est pratique si le temps d’exécution est une contrainte pendant le test, ou si le testeur veut prendre des précautions contre l’exécution sans fin des tests. Nous pouvons déclarer le paramètre timeout à:

  • niveau suite : Pour mettre une contrainte de temps sur toutes les méthodes de la suite.
  • niveau de méthode: Pour mettre la contrainte de temps sur une méthode particulière.

Syntaxe:

@Test(timeout = 1000)

Qu’entend-on par invocationCount dans TestNG?

invocationCount est un attribut qui définit le nombre de fois qu’une méthode de test doit s’exécuter en une seule exécution. Donc, si invocationCount définit 5, la méthode de test s’exécuterait cinq fois chaque fois que j’exécuterais le cas de test TestNG.

Syntaxe pour invocationCount:

@Test(invocationCount = 5)

Qu’entend-on par exécution de test parallèle dans TestNG?

L’exécution de test parallèle signifie exécuter simultanément différentes méthodes de test, c’est-à-dire parallèlement à TestNG. Il est réalisé en créant des threads et en affectant ces threads à différentes méthodes de test (ce qui se fait automatiquement et est le travail d’un système d’exploitation). De plus, l’exécution des tests de manière parallèle plutôt que séquentielle est très efficace.

En savoir plus sur l’exécution de tests en parallèle dans TestNG et quels sont ses avantages ?

À quels niveaux pouvons-nous appliquer des tests parallèles dans TestNG?

Les tests parallèles peuvent s’appliquer à quatre niveaux différents dans le TestNG:

  • Méthodes: Cela exécutera les tests parallèles sur toutes les méthodes @Test dans TestNG.Tests
  • : Tous les cas de test présents dans la balise < test > s’exécuteront avec cette valeur.
  • Classes: Tous les cas de test présents dans les classes qui existent dans le XML s’exécuteront en parallèle.Instances
  • : Cette valeur exécutera tous les cas de test en parallèle dans la même instance.

En savoir plus sur la façon d’exécuter des tests en parallèle dans TestNG à différents niveaux avec des exemples?

Comment la gestion des exceptions est-elle effectuée dans TestNG ?

Nous effectuons la gestion des exceptions dans TestNG en définissant l’exception au niveau de l’annotation @Test. Si nous procédons de cette manière, le scénario de test n’échouera pas même après avoir soulevé une exception.

Exemple :

@Test(expectedException =numberFormatException.class)

Un testeur peut écrire n’importe quel type d’exception ici au lieu de numberFormatException.

Peut-on désactiver un test dans TestNG ? Si oui, expliquez comment?

Oui, la désactivation d’un test peut être réalisée dans TestNG. Une fois que nous désactivons un test, il ne s’exécutera pas lors du prochain cycle d’exécution. De plus, nous y parvenons en utilisant l’attribut « activé ».

Syntaxe:

@Test(enabled = False)

// code

En savoir plus sur la façon d’ignorer les tests à l’aide du paramètre enabled dans TestNG ?

Pourquoi la classe reporter est-elle utilisée dans TestNG ?

La classe reporter de TestNG enregistre les messages définis par le testeur dans les rapports générés par TestNG. Ces messages enregistrés s’impriment ensuite dans les rapports, que nous pouvons partager avec l’équipe.

En savoir plus sur Qu’est-ce qu’une classe reporter dans TestNG ?

Définissez la syntaxe de génération des journaux via la classe reporter dans TestNG.

La classe Reporter enregistre les messages définis par le testeur sur les rapports générés par TestNG. De plus, la syntaxe pour la même chose est la suivante:

Reporter.log(« message »);

En savoir plus sur la façon de générer des journaux avec la classe Reporter dans TestNG?

Qu’est-ce que l’annotation @Factory dans TestNG ?

La nécessité d’exécuter plusieurs cas de test en un seul test suffit en utilisant l’annotation @Factory. La fabrique de noms ressemble à la génération d’objet de classe de test fournie par la méthode qui s’y trouve. De plus, cela ressemble à une usine produisant un produit. L’exemple suivant montre une annotation d’usine dans TestNG :

Remarque : La méthode de test sous @Factory annotation renvoie toujours un tableau d’objets.

Quelle est la différence entre les annotations @Factory et @Dataprovider ?

@Factory et @Dataprovider sont deux types d’annotations disponibles dans TestNG, qui se ressemblent dans leur fonctionnement mais sont différentes.

@ Usine: L’utilisation de l’annotation d’usine est lorsque le testeur doit exécuter les méthodes de test plusieurs fois, qui sont présentes dans la même classe. De plus, nous y parvenons en créant différentes instances de la même classe.

@Dataprovider : L’annotation dataprovider permet au testeur d’exécuter une méthode de test plusieurs fois en utilisant un ensemble de données différent fourni par le dataprovider.

En savoir plus sur les fournisseurs de données et leur utilisation dans TestNG ?

Auditeurs TestNG

Que sont les auditeurs dans TestNG?

Les écouteurs dans TestNG sont le morceau de code qui écoute certains événements et exécute le code associé à cet événement. En conséquence, avec les écouteurs TestNG, nous pouvons modifier le comportement par défaut de TestNG. De plus, dans TestNG, le testeur bénéficie de nombreux auditeurs qui ont des fonctionnalités différentes.

En savoir plus sur les auditeurs de TestNG et leurs types ?

Comment les auditeurs sont-ils déclarés dans TestNG ?

Le code d’écoute dans TestNG existe dans un fichier distinct du fichier de cas de test TestNG. Par la suite, ce fichier contient le code d’écouteur et le type d’écouteur à implémenter se fait en « implémentant » la classe d’écouteur de la manière suivante:

Java

1
2
3
4
5

public class ListenersTestNG implements ITestListener {
public void onStart(ITestContext context) {
System.out.println(« onStart method started »);
}
}

Pour ajouter le fichier de cas de test TestNG à propos de l’écouteur, nous déclarons l’annotation @Listener et mentionnons le nom de la classe listener de la manière suivante :

En savoir plus sur la façon d’implémenter des écouteurs dans TestNG?

De quoi avons-nous besoin pour générer un rapport personnalisé dans TestNG ?

Ceci est parmi de nombreuses autres questions d’entrevue TestNG qui sont posées. Un rapport personnalisé dans TestNG est généré à l’aide des écouteurs TestNG. En utilisant l’interface ITestListener dans TestNG, nous pouvons contrôler les événements tels que le démarrage de la méthode, la réussite de la méthode, l’échec, etc., et selon ces événements, un testeur peut enregistrer les messages appropriés.

En savoir plus sur Ce qu’est ITestListener et comment l’utiliser dans TestNG?

De manière concluante, ce sont les questions d’entrevue de test courantes de mon côté. Encore une fois, je vous demanderais de ne pas dépendre entièrement de ces questions d’entrevue de TestNG et de les référer pour acquérir des connaissances sur TestNG et ses fonctionnalités. Alors, continuez à vous entraîner et tant mieux!!

Related Post

Leave A Comment