{"id":2712,"date":"2024-03-14T18:29:13","date_gmt":"2024-03-14T17:29:13","guid":{"rendered":"https:\/\/ittester.sk\/non-classifiee\/testng-introduction\/"},"modified":"2024-10-22T14:14:02","modified_gmt":"2024-10-22T12:14:02","slug":"testng-introduction","status":"publish","type":"post","link":"https:\/\/ittester.sk\/fr\/tests-automatises\/tutoriel-testng\/testng-introduction\/","title":{"rendered":"Introduction \u00e0 TestNG"},"content":{"rendered":"\n<p>Dans cet article, nous allons \u00e9tudier &#8211; Qu&rsquo;est-ce que TestNG ? Il s&rsquo;agit d&rsquo;un cadre de test largement utilis\u00e9. Il prend en charge tous les niveaux de test, des tests unitaires aux tests fonctionnels automatis\u00e9s. Nous verrons son utilisation dans les tests Selenium et ses avantages.<\/p>\n\n<h2 class=\"wp-block-heading\">Table des mati\u00e8res<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-co-je-testng\">\u010co je TestNG?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-funkcie-testng\">Funkcie TestNG<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vyhody-testng\">V\u00fdhody TestNG<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-instalacia-testng\">In\u0161tal\u00e1cia TestNG<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-testng-s-nastavenim-eclipse\">TestNG s nastaven\u00edm Eclipse<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-prostrednictvom-eclipse-marketplace\">Prostredn\u00edctvom Eclipse Marketplace<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-instalacia-zo-stranky-s-aktualizaciami\">In\u0161tal\u00e1cia zo str\u00e1nky s aktualiz\u00e1ciami<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-co-je-testng\">Qu&rsquo;est-ce que TestNG ?<\/h2>\n\n<p>TestNG est un framework de test inspir\u00e9 de JUnit. Il offre plusieurs fonctionnalit\u00e9s telles que les tests pilot\u00e9s par les donn\u00e9es, la prise en charge de la param\u00e9trisation, l&rsquo;ex\u00e9cution parall\u00e8le des cas de test et le regroupement des cas de test, etc. Toutes ces fonctionnalit\u00e9s permettent de cr\u00e9er des projets de test robustes et puissants.<\/p>\n\n<p>Nous pouvons facilement convertir une m\u00e9thode ou une fonction en test en lui ajoutant une annotation &#8211; @Test. Un test simple en Java ressemble \u00e0 ceci :<\/p>\n\n<p><strong>@Test<\/strong><\/p>\n\n<p><strong>public void sampleTest() {  <\/strong><\/p>\n\n<p><strong>  \/\/Toute logique de test<\/strong><\/p>\n\n<p><strong>  System.out.println(\u00ab\u00a0Hi ! ITtester here !\u00a0\u00bb) ;  <\/strong><\/p>\n\n<p><strong>}<\/strong><\/p>\n\n<p>Maintenant, soit dans le cas d&rsquo;une exception, soit dans le cas d&rsquo;une assertion \u00e9chou\u00e9e, le cas de test sera marqu\u00e9 comme ayant \u00e9chou\u00e9. Dans le cas contraire, le test sera consid\u00e9r\u00e9 comme r\u00e9ussi.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-funkcie-testng\">Fonctions de TestNG<\/h2>\n\n<ol class=\"wp-block-list\">\n<li><strong>Diff\u00e9rents types de demandes d&rsquo;indemnisation<\/strong><\/li>\n<\/ol>\n\n<p>Il dispose d&rsquo;une classe Assert qui fournit plusieurs m\u00e9thodes prenant en charge diff\u00e9rents types d&rsquo;assertions. Ces assertions permettent, par exemple, de v\u00e9rifier l&rsquo;\u00e9galit\u00e9 entre le r\u00e9sultat attendu et le r\u00e9sultat r\u00e9el, d&rsquo;affirmer qu&rsquo;une condition est vraie ou fausse, d&rsquo;affirmer qu&rsquo;une valeur est nulle ou non nulle, etc.<\/p>\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Ex\u00e9cution parall\u00e8le des tests<\/strong><\/li>\n<\/ol>\n\n<p>En utilisant le fichier testNG.xml, nous pouvons ex\u00e9cuter les cas de test en parall\u00e8le. Cela permet de r\u00e9duire la dur\u00e9e totale d&rsquo;ex\u00e9cution des tests. L&rsquo;ex\u00e9cution parall\u00e8le peut \u00eatre r\u00e9alis\u00e9e \u00e0 plusieurs niveaux &#8211; au niveau de la m\u00e9thode, de la classe, du paquetage.<\/p>\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Capacit\u00e9 \u00e0 rendre les tests interd\u00e9pendants<\/strong><\/li>\n<\/ol>\n\n<p>Nous pouvons rendre le test d\u00e9pendant d&rsquo;autres tests. Pour ce faire, vous pouvez utiliser les attributs \u00ab\u00a0dependsOnMethods\u00a0\u00bb et \u00ab\u00a0dependsOnGroups\u00a0\u00bb avec l&rsquo;annotation @Test.<\/p>\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Hi\u00e9rarchisation des tests<\/strong><\/li>\n<\/ol>\n\n<p>Cette fonction permet d&rsquo;attribuer une valeur num\u00e9rique de priorit\u00e9 aux tests. La priorit\u00e9 par d\u00e9faut est 0.<\/p>\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li><strong>Regroupement des tests<\/strong><\/li>\n<\/ol>\n\n<p>Permet de regrouper logiquement les cas de test. Cela permet d&rsquo;ex\u00e9cuter des groupes de tests en parall\u00e8le, certaines op\u00e9rations \u00e9tant effectu\u00e9es avant ou apr\u00e8s l&rsquo;ex\u00e9cution des tests appartenant au groupe.<\/p>\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li><strong>Tests bas\u00e9s sur des donn\u00e9es<\/strong><\/li>\n<\/ol>\n\n<p>En utilisant @DataProvider, nous pouvons cr\u00e9er des tests ax\u00e9s sur les donn\u00e9es. En utilisant cette annotation dataProvider, nous pouvons transmettre des donn\u00e9es de test \u00e0 la m\u00e9thode de test.<\/p>\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li><strong>Rapports<\/strong><\/li>\n<\/ol>\n\n<p>Une fois le test ex\u00e9cut\u00e9, un rapport HTML est g\u00e9n\u00e9r\u00e9 qui fournit un r\u00e9sum\u00e9 tabulaire des r\u00e9sultats du test. Le format de rapport est \u00e9galement configurable par la mise en \u0153uvre de l&rsquo;auditeur.<\/p>\n\n<ol class=\"wp-block-list\" start=\"8\">\n<li><strong>Param\u00e9trage<\/strong><\/li>\n<\/ol>\n\n<p>Fournit un support inh\u00e9rent au param\u00e9trage en utilisant l&rsquo;annotation @Parameters. En utilisant l&rsquo;annotation @Parameters, nous pouvons passer une valeur de param\u00e8tre \u00e0 la logique de test \u00e0 partir du fichier testng.xml.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyhody-testng\">Avantages de TestNG<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Il permet de r\u00e9duire le temps global d&rsquo;ex\u00e9cution des tests en offrant la possibilit\u00e9 d&rsquo;ex\u00e9cuter des tests en parall\u00e8le.<\/li>\n\n\n\n<li>Il peut \u00eatre facilement int\u00e9gr\u00e9 \u00e0 des outils de CICD tels que Jenkins. Vous pouvez le faire en utilisant le fichier testNG.xml.<\/li>\n\n\n\n<li>Il n&rsquo;est pas n\u00e9cessaire de coder les donn\u00e9es en dur. Pour ce faire, vous pouvez utiliser diverses annotations telles que @DataProvider, @Parameter, etc.<\/li>\n\n\n\n<li>Nous pouvons faire d\u00e9pendre un test d&rsquo;un autre. Cela permet de gagner du temps en sautant le test d\u00e9pendant si le test parent \u00e9choue.<\/li>\n\n\n\n<li>En regroupant les tests, nous pouvons cr\u00e9er diff\u00e9rentes suites de tests telles que &#8211; sanity, smoke, regression etc. En outre, nous pouvons int\u00e9grer et ex\u00e9cuter ces suites de tests \u00e0 l&rsquo;aide d&rsquo;outils CICD tels que &#8211; Jenkins.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-instalacia-testng\">Installation de TestNG<\/h2>\n\n<p>TestNG n&rsquo;a pas besoin d&rsquo;\u00eatre sp\u00e9cialement install\u00e9. Il suffit de t\u00e9l\u00e9charger le fichier jar de testNG et de l&rsquo;ajouter en tant que biblioth\u00e8que ou de l&rsquo;inclure via maven.<\/p>\n\n<p><strong>&lt;d\u00e9pendance&gt;<\/strong><\/p>\n\n<p><strong>  &lt;groupId&gt;org.testng&lt;\/groupId&gt;<\/strong><\/p>\n\n<p><strong>  &lt;artifactId&gt;testng&lt;\/artifactId&gt;<\/strong><\/p>\n\n<p><strong>  &lt;version&gt;6.10&lt;\/version&gt;<\/strong><\/p>\n\n<p><strong>  &lt;scope&gt;test&lt;\/scope&gt;<\/strong><\/p>\n\n<p><strong>&lt;\/dependency&gt;<\/strong><\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-testng-s-nastavenim-eclipse\">TestNG avec les param\u00e8tres d&rsquo;Eclipse<\/h2>\n\n<p>Afin d&rsquo;int\u00e9grer TestNG \u00e0 l&rsquo;IDE Eclipse, nous pouvons suivre les \u00e9tapes suivantes list\u00e9es sur &#8211; <a href=\"https:\/\/testng.org\/doc\/download.html\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">TestNG.org.<\/a> Pour ce faire, nous pouvons utiliser soit la place de march\u00e9 Eclipse, soit la page de mise \u00e0 jour.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-prostrednictvom-eclipse-marketplace\">Par le biais du march\u00e9 Eclipse<\/h3>\n\n<p>Allez sur la <a href=\"https:\/\/marketplace.eclipse.org\/content\/testng-eclipse\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">page TestNG de la place de march\u00e9 Eclipse<\/a> et faites glisser l&rsquo;ic\u00f4ne \u00ab\u00a0Install\u00a0\u00bb sur le bureau.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-instalacia-zo-stranky-s-aktualizaciami\">Installer \u00e0 partir de la page des mises \u00e0 jour<\/h3>\n\n<ol class=\"wp-block-list\">\n<li>S\u00e9lectionnez \u00ab\u00a0Aide \/ Installer un nouveau logiciel&#8230;\u00a0\u00bb.<\/li>\n\n\n\n<li>Dans le champ \u00ab\u00a0Travailler avec :\u00a0\u00bb, entrez l&rsquo;URL de la page de mise \u00e0 jour :<br\/>Page de mise \u00e0 jour de la version &#8211; https:\/\/dl.bintray.com\/testng-team\/testng-eclipse-release\/.<\/li>\n\n\n\n<li>Cochez la case \u00e0 c\u00f4t\u00e9 de l&rsquo;URL.<\/li>\n\n\n\n<li>Cliquez sur le bouton \u00ab\u00a0Suivant\u00a0\u00bb.<\/li>\n\n\n\n<li>Suivez ensuite les \u00e9tapes de la page Eclipse.<\/li>\n<\/ol>\n\n<p>Lorsque vous avez termin\u00e9, cr\u00e9ez un exemple de test comme suit :<\/p>\n\n<p><strong>@Test<\/strong><\/p>\n\n<p><strong>public void sampleTest() {<\/strong><\/p>\n\n<p><strong>  System.out.println(\u00ab\u00a0Hello World !\u00a0\u00bb) ;  <\/strong><\/p>\n\n<p><strong>}<\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"370\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/sampletestngtest-java-620-370.webp\" alt=\"\" class=\"wp-image-1199\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/sampletestngtest-java-620-370.webp 620w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/sampletestngtest-java-620-370-300x179.webp 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n<\/div>\n<p>Nous pouvons maintenant ex\u00e9cuter le test en faisant un clic droit sur la classe et en cliquant sur \u00ab\u00a0Ex\u00e9cuter sous\u00a0\u00bb. Cliquez ensuite sur \u00ab\u00a0TestNG Test\u00a0\u00bb. De cette mani\u00e8re, nous pouvons ex\u00e9cuter les cas de test.<\/p>\n\n<p>Comme vous pouvez le voir, les r\u00e9sultats du test sont sous forme de r\u00e9ussite, d&rsquo;\u00e9chec et d&rsquo;omission. Cela signifie que nous nous sommes install\u00e9s correctement.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"280\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/results-of-running-sampletestngtest-1060-290-1024x280.webp\" alt=\"\" class=\"wp-image-1201\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/results-of-running-sampletestngtest-1060-290-1024x280.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/results-of-running-sampletestngtest-1060-290-300x82.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/results-of-running-sampletestngtest-1060-290-768x210.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/03\/results-of-running-sampletestngtest-1060-290.webp 1060w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Qu&rsquo;est-ce que TestNG ? Il s&rsquo;agit d&rsquo;un cadre de test largement utilis\u00e9. Il prend en charge tous les niveaux de test, de l&rsquo;essai unitaire \u00e0 l&rsquo;essai automatis\u00e9 et fonctionnel.  <\/p>\n","protected":false},"author":8,"featured_media":2715,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[46],"tags":[],"class_list":["post-2712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriel-testng"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/comments?post=2712"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2712\/revisions"}],"predecessor-version":[{"id":2717,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2712\/revisions\/2717"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media\/2715"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media?parent=2712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/categories?post=2712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/tags?post=2712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}