{"id":1236,"date":"2024-03-20T09:56:03","date_gmt":"2024-03-20T08:56:03","guid":{"rendered":"https:\/\/ittester.sk\/automatisiertes-testen\/cross-browser-testing-testng\/"},"modified":"2024-07-11T09:43:39","modified_gmt":"2024-07-11T07:43:39","slug":"cross-browser-testing-testng","status":"publish","type":"post","link":"https:\/\/ittester.sk\/de\/automatisiertes-testen\/testng-anleitung\/cross-browser-testing-testng\/","title":{"rendered":"Testen in mehreren Browsern mit TestNG"},"content":{"rendered":"\n<p>In diesem Tutorial werden wir das Testen von mehreren Browsern in Selenium zusammen mit seiner Implementierung behandeln. Zu diesem Zweck werden wir Selenium mit TestNG integrieren und die @Parameter-Annotation von TestNG verwenden, um das Testskript mit verschiedenen Browserwerten zu parametrisieren.<\/p>\n\n<p>Beachten Sie auch, dass Multi-Browser-Tests auch mit Selenium Grid durchgef\u00fchrt werden k\u00f6nnen. Hier werden wir TestNG und Selenium WebDriver jedoch nur f\u00fcr die Implementierung von Cross-Browser-Tests verwenden.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Inhalts\u00fcbersicht<\/strong><\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-co-je-to-testovanie-napriec-prehliadacmi-multi-cross-browser-testing\">\u010co je to testovanie naprie\u010d prehliada\u010dmi (multi-cross browser testing)?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-testovanie-medzi-prehliadacmi-v-selenium-a-testng\">Testovanie medzi prehliada\u010dmi v Selenium a\u00a0TestNG<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-co-je-to-testovanie-napriec-prehliadacmi-multi-cross-browser-testing\">Was sind Multi-Cross-Browser-Tests?<\/h2>\n\n<p>Cross-Browser-Tests sind eine Art von Tests, bei denen die zu testende Anwendung mit mehreren unterst\u00fctzten Browsern getestet wird. Die Notwendigkeit von Multi-Browser-Tests ergibt sich aus der Tatsache, dass verschiedene Browser unterschiedliche UI-Implementierungen haben. Es gibt also keine M\u00f6glichkeit, daf\u00fcr zu sorgen, dass Anwendungen, die in Chrome laufen, auch nahtlos in IE laufen.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-testovanie-medzi-prehliadacmi-v-selenium-a-testng\">Browser\u00fcbergreifende Tests in Selenium und TestNG<\/h2>\n\n<p>Cross-Browser-Tests in Selenium k\u00f6nnen mit Hilfe von Browser-Variablen-Parametern durchgef\u00fchrt werden. Wir k\u00f6nnen die @Parameter-Annotation in TestNG verwenden, um die Browser-Variable zu parametrisieren. Mit der @Parameter-Annotation k\u00f6nnen wir verschiedene Browserwerte aus der Datei testng.xml an die Testskripte \u00fcbergeben.<\/p>\n\n<p>Der Wert des Browser-Parameters kann dann zur Instanziierung der entsprechenden Selenium WebDriver-Klasse verwendet werden. Da der Browser-Wert in allen Testmethoden verwendet wird, ist es besser, die Browser-Variable in der @BeforeTest-Methode zu verwenden.<\/p>\n\n<p>Die Methode beforeTest mit dem Parameter @Parameter TestNG sieht dann so aus:<\/p>\n\n<pre class=\"wp-block-code\"><code>@Parameters(\"browser\")\n\n@BeforeTest\n\npublic void setBrowser(String browser)\n\n{\n\n\u00a0\u00a0\u00a0if (browser.equalsIgnoreCase(\"Firefox\")) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0driver = new FirefoxDriver();\n\n\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0else if (browser.equalsIgnoreCase(\"Chrome\")) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.setProperty(\"webdriver.chrome.driver\",\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+ pathToChromeDriverBinary + \"chromedriver.exe\");\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0driver = new ChromeDriver();\n\n\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0else {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw new IllegalArgumentException(\"Invalid browser value!!\");\n\n\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0driver.get(URL);\n\n\u00a0\u00a0\u00a0driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);\n\n\u00a0\u00a0\u00a0driver.manage().window().maximize();\n\n}<\/code><\/pre>\n\n<p>Wie bereits erw\u00e4hnt, wird der Wert der Browservariable \u00fcber die Datei testng.xml an die Testskripte \u00fcbergeben. Diese Datei testng.xml enth\u00e4lt ein Parameter-Tag, das die Browser-Variable und ihren Wert enth\u00e4lt.<\/p>\n\n<p>Hier erstellen wir zwei Tests, jeweils einen f\u00fcr Firefox und Chrome mit unterschiedlichen Browserwerten. Zum Verst\u00e4ndnis des Konzepts der Testparametrisierung siehe den folgenden Ausschnitt aus der Datei testng.xml.<\/p>\n\n<p>Beachten Sie auch, dass die Angabe von parallel=&#8220;tests&#8220; im Suite-Tag dazu f\u00fchrt, dass die beiden Tests parallel laufen.<\/p>\n\n<pre class=\"wp-block-code\"><code>&lt;suite name=\"MultiBrowserSuite\" parallel=\"tests\" thread-count=\"2\">\n\n\u00a0\u00a0\u00a0&lt;test name=\"TestFirefox\">\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;parameter name=\"browser\" value=\"Firefox\"\/>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;classes>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;class name=\"sampleTestPackage.MultiBrowserTest\"\/>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/classes>\n\n\u00a0\u00a0\u00a0&lt;\/test>\n\n\u00a0\u00a0\u00a0&lt;test name=\"TestChrome\">\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;parameter name=\"browser\" value=\"Chrome\"\/>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;classes>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;class name=\"sampleTestPackage.MultiBrowserTest\"\/>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/classes>\n\n\u00a0\u00a0\u00a0&lt;\/test>\n\n&lt;\/suite><\/code><\/pre>\n\n<p>Wenn Sie den Test mithilfe der Datei testng.xml ausf\u00fchren, wird der Test parallel f\u00fcr alle angegebenen Browser (in unserem Fall Firefox und Chrome) ausgef\u00fchrt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Multi-Cross-Browser-Tests: Integration von Selenium mit TestNG mit Annotation zur Parametrisierung des Testskripts mit verschiedenen Browserwerten.<\/p>\n","protected":false},"author":8,"featured_media":1569,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[25],"tags":[],"class_list":["post-1236","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\/1236","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=1236"}],"version-history":[{"count":3,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1236\/revisions"}],"predecessor-version":[{"id":1572,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1236\/revisions\/1572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media\/1569"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media?parent=1236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/categories?post=1236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/tags?post=1236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}