{"id":1208,"date":"2024-03-14T18:29:13","date_gmt":"2024-03-14T17:29:13","guid":{"rendered":"https:\/\/ittester.sk\/automatisiertes-testen\/testng-einfuehrung\/"},"modified":"2024-07-11T09:43:31","modified_gmt":"2024-07-11T07:43:31","slug":"testng-einfuehrung","status":"publish","type":"post","link":"https:\/\/ittester.sk\/de\/automatisiertes-testen\/testng-anleitung\/testng-einfuehrung\/","title":{"rendered":"TestNG-Einf\u00fchrung"},"content":{"rendered":"\n<p>In diesem Artikel werden wir untersuchen &#8211; Was ist TestNG? Es ist ein weit verbreitetes Test-Framework. Es unterst\u00fctzt alle Testebenen vom Unit-Test bis zum automatisierten Funktionstest. Wir werden sehen, wie es in Selenium-Tests verwendet wird und welche Vorteile es bietet.<\/p>\n\n<h2 class=\"wp-block-heading\">Inhalts\u00fcbersicht<\/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\">Was ist TestNG?<\/h2>\n\n<p>TestNG ist ein von JUnit inspiriertes Test-Framework. Es bietet verschiedene Funktionen wie datengesteuertes Testen, Unterst\u00fctzung von Parametrisierung, parallele Testfallausf\u00fchrung und Testfallgruppierung, usw. All diese Funktionen helfen bei der Erstellung robuster und leistungsstarker Testprojekte.<\/p>\n\n<p>Wir k\u00f6nnen eine Methode oder Funktion leicht in einen Test umwandeln, indem wir ihr eine Anmerkung hinzuf\u00fcgen &#8211; @Test. Ein einfacher Test in Java sieht wie folgt aus:<\/p>\n\n<p><strong>@Test<\/strong><\/p>\n\n<p><strong>public void sampleTest() {  <\/strong><\/p>\n\n<p><strong>  \/\/Beliebige Testlogik<\/strong><\/p>\n\n<p><strong>  System.out.println(&#8222;Hallo! Hier ITtester!&#8220;);  <\/strong><\/p>\n\n<p><strong>}<\/strong><\/p>\n\n<p>Nun wird der Testfall entweder im Falle einer Ausnahme oder einer fehlgeschlagenen Behauptung als fehlgeschlagen markiert. Andernfalls wird der Test als bestanden markiert.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-funkcie-testng\">TestNG-Funktionen<\/h2>\n\n<ol class=\"wp-block-list\">\n<li><strong>Verschiedene Arten von Forderungen<\/strong><\/li>\n<\/ol>\n\n<p>Sie verf\u00fcgt \u00fcber eine Assert-Klasse, die mehrere Methoden zur Unterst\u00fctzung verschiedener Arten von Assertions bietet. Diese Behauptungen helfen beispielsweise bei der \u00dcberpr\u00fcfung der Gleichheit von erwartetem und tats\u00e4chlichem Ergebnis, bei der Behauptung, dass eine Bedingung wahr oder falsch ist, bei der Behauptung, ob ein Wert null oder nicht null ist, usw.<\/p>\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Parallele Testdurchf\u00fchrung<\/strong><\/li>\n<\/ol>\n\n<p>Mit Hilfe der Datei testNG.xml k\u00f6nnen wir die Testf\u00e4lle parallel ausf\u00fchren. Dies tr\u00e4gt dazu bei, die Gesamtdauer der Testausf\u00fchrung zu verk\u00fcrzen. Die parallele Ausf\u00fchrung kann auf mehreren Ebenen erfolgen &#8211; auf Methoden-, Klassen- und Paketebene.<\/p>\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Die F\u00e4higkeit, Tests voneinander abh\u00e4ngig zu machen<\/strong><\/li>\n<\/ol>\n\n<p>Wir k\u00f6nnen den Test von anderen Tests abh\u00e4ngig machen. Dies kann mit den Attributen &#8222;dependsOnMethods&#8220; und &#8222;dependsOnGroups&#8220; mit der @Test-Annotation erfolgen.<\/p>\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Priorisierung von Tests<\/strong><\/li>\n<\/ol>\n\n<p>Mit dieser Funktion k\u00f6nnen wir den Tests einen numerischen Priorit\u00e4tswert zuweisen. Die Standardpriorit\u00e4t ist 0.<\/p>\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li><strong>Gruppierung von Tests<\/strong><\/li>\n<\/ol>\n\n<p>Unterst\u00fctzt die logische Gruppierung von Testf\u00e4llen. Dies erm\u00f6glicht es, Gruppen von Tests parallel laufen zu lassen, wobei bestimmte Operationen vor oder nach der Ausf\u00fchrung der zu der Gruppe geh\u00f6renden Tests durchgef\u00fchrt werden.<\/p>\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li><strong>Datengesteuertes Testen<\/strong><\/li>\n<\/ol>\n\n<p>Mit @DataProvider k\u00f6nnen wir datengesteuerte Tests erstellen. Mit dieser dataProvider-Anmerkung k\u00f6nnen wir Testdaten an die Testmethode \u00fcbergeben.<\/p>\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li><strong>Berichterstattung<\/strong><\/li>\n<\/ol>\n\n<p>Nach Ausf\u00fchrung des Tests wird ein HTML-Bericht erstellt, der eine tabellarische Zusammenfassung der Testergebnisse enth\u00e4lt. Das Berichtsformat ist ebenfalls durch die H\u00f6rerimplementierung konfigurierbar.<\/p>\n\n<ol class=\"wp-block-list\" start=\"8\">\n<li><strong>Parametrisierung<\/strong><\/li>\n<\/ol>\n\n<p>Bietet inh\u00e4rente Unterst\u00fctzung f\u00fcr die Parametrisierung mit der @Parameters-Annotation. Mit der @Parameters-Annotation k\u00f6nnen wir einen Parameterwert aus der Datei testng.xml an die Testlogik \u00fcbergeben.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyhody-testng\">Vorteile von TestNG<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Durch die M\u00f6glichkeit, Tests parallel auszuf\u00fchren, kann die Gesamtdauer der Testausf\u00fchrung verk\u00fcrzt werden.<\/li>\n\n\n\n<li>Es kann problemlos in CICD-Tools wie Jenkins integriert werden. Dies kann mit Hilfe der Datei testNG.xml geschehen.<\/li>\n\n\n\n<li>Es besteht keine Notwendigkeit, die Daten zu kodieren. Dies kann mit verschiedenen Anmerkungen wie @DataProvider, @Parameter usw. geschehen.<\/li>\n\n\n\n<li>Wir k\u00f6nnen einen Test von einem anderen abh\u00e4ngig machen. Dies spart Zeit, da der abh\u00e4ngige Test \u00fcbersprungen wird, wenn der \u00fcbergeordnete Test fehlschl\u00e4gt.<\/li>\n\n\n\n<li>Durch die Gruppierung von Tests k\u00f6nnen wir verschiedene Testsuiten erstellen, z. B. Sanity, Smoke, Regression usw. Dar\u00fcber hinaus k\u00f6nnen wir diese Testsuiten mit CICD-Tools wie Jenkins integrieren und ausf\u00fchren.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-instalacia-testng\">Installieren von TestNG<\/h2>\n\n<p>TestNG muss nicht speziell installiert werden. Laden Sie einfach die testNG jar-Datei herunter und f\u00fcgen Sie sie als Bibliothek hinzu oder binden Sie sie \u00fcber Maven ein.<\/p>\n\n<p><strong>&lt;Abh\u00e4ngigkeiten&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;Umfang&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 mit Eclipse-Einstellungen<\/h2>\n\n<p>Um TestNG in die Eclipse IDE zu integrieren, k\u00f6nnen wir die folgenden Schritte befolgen, die unter <a href=\"https:\/\/testng.org\/doc\/download.html\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">TestNG.org<\/a> aufgef\u00fchrt sind. Hierf\u00fcr k\u00f6nnen wir entweder den Eclipse Marketplace oder die Update-Seite verwenden.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-prostrednictvom-eclipse-marketplace\">\u00dcber den Eclipse-Marktplatz<\/h3>\n\n<p>Rufen Sie die <a href=\"https:\/\/marketplace.eclipse.org\/content\/testng-eclipse\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">TestNG-Seite auf dem Eclipse-Marktplatz<\/a> auf und ziehen Sie das Symbol &#8222;Installieren&#8220; auf den Desktop.<\/p>\n\n<h3 class=\"wp-block-heading\" id=\"aioseo-instalacia-zo-stranky-s-aktualizaciami\">Installation \u00fcber die Updateseite<\/h3>\n\n<ol class=\"wp-block-list\">\n<li>W\u00e4hlen Sie &#8222;Hilfe \/ Neue Software installieren&#8230;&#8220;.<\/li>\n\n\n\n<li>Geben Sie in das Feld &#8222;Arbeiten mit:&#8220; die URL der Aktualisierungsseite ein:<br\/>Aktualisierungsseite f\u00fcr die Ver\u00f6ffentlichung &#8211; https:\/\/dl.bintray.com\/testng-team\/testng-eclipse-release\/.<\/li>\n\n\n\n<li>Markieren Sie das K\u00e4stchen neben der URL.<\/li>\n\n\n\n<li>Klicken Sie auf die Schaltfl\u00e4che &#8222;Weiter&#8220;.<\/li>\n\n\n\n<li>Folgen Sie dann den Schritten auf der Eclipse-Seite.<\/li>\n<\/ol>\n\n<p>Wenn Sie fertig sind, erstellen Sie einen Mustertest wie folgt:<\/p>\n\n<p><strong>@Test<\/strong><\/p>\n\n<p><strong>public void sampleTest() {<\/strong><\/p>\n\n<p><strong>  System.out.println(&#8222;Hallo Welt!&#8220;);  <\/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>Jetzt k\u00f6nnen wir den Test ausf\u00fchren, indem wir mit der rechten Maustaste auf die Klasse klicken und &#8222;Ausf\u00fchren als&#8220; w\u00e4hlen. Klicken Sie dann auf &#8222;TestNG Test&#8220;. Auf diese Weise k\u00f6nnen wir die Testf\u00e4lle ausf\u00fchren.<\/p>\n\n<p>Wie Sie sehen k\u00f6nnen, sind die Testergebnisse in Form von Bestanden, Nicht bestanden und \u00dcbersprungen. Dann bedeutet das, dass wir richtig eingestellt haben.<\/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>Was ist TestNG? Es ist ein weit verbreitetes Test-Framework. Es unterst\u00fctzt alle Testebenen, von Unit- \u00fcber automatisierte bis hin zu funktionalen Tests.  <\/p>\n","protected":false},"author":8,"featured_media":1545,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[25],"tags":[],"class_list":["post-1208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testng-anleitung"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/comments?post=1208"}],"version-history":[{"count":4,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1208\/revisions"}],"predecessor-version":[{"id":1547,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1208\/revisions\/1547"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media\/1545"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media?parent=1208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/categories?post=1208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/tags?post=1208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}