{"id":1825,"date":"2024-03-20T09:56:03","date_gmt":"2024-03-20T08:56:03","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/pruebas-en-varios-navegadores-con-testng\/"},"modified":"2024-07-11T09:43:35","modified_gmt":"2024-07-11T07:43:35","slug":"pruebas-en-varios-navegadores-con-testng","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-testng\/pruebas-en-varios-navegadores-con-testng\/","title":{"rendered":"Pruebas en varios navegadores con TestNG"},"content":{"rendered":"\n<p>En este tutorial, cubriremos la prueba de m\u00faltiples navegadores en Selenium junto con su implementaci\u00f3n. Para ello, integraremos Selenium con TestNG y utilizaremos la anotaci\u00f3n @Parameter de TestNG para parametrizar el script de prueba con diferentes valores del navegador.<\/p>\n\n<p>Ten en cuenta tambi\u00e9n que las pruebas multinavegador tambi\u00e9n se pueden hacer utilizando Selenium Grid. Sin embargo, aqu\u00ed utilizaremos TestNG y Selenium WebDriver s\u00f3lo para implementar pruebas entre navegadores.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>\u00cdndice<\/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\">\u00bfQu\u00e9 es la prueba multi navegador?<\/h2>\n\n<p>Las pruebas cruzadas o cross-browser son un tipo de pruebas en las que la aplicaci\u00f3n sometida a prueba se prueba con varios navegadores compatibles. La necesidad de realizar pruebas con varios navegadores se debe a que los distintos navegadores tienen diferentes implementaciones de la interfaz de usuario. As\u00ed que no hay forma de garantizar que las aplicaciones que se ejecutan en Chrome tambi\u00e9n se ejecuten sin problemas en IE.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-testovanie-medzi-prehliadacmi-v-selenium-a-testng\">Pruebas entre navegadores en Selenium y TestNG<\/h2>\n\n<p>Las pruebas entre navegadores en Selenium pueden realizarse utilizando par\u00e1metros variables del navegador. Podemos utilizar la anotaci\u00f3n @Parameter en TestNG para parametrizar la variable del navegador. Utilizando la anotaci\u00f3n @Parameter, podemos pasar varios valores del navegador a los scripts de prueba desde el archivo testng.xml.<\/p>\n\n<p>El valor del par\u00e1metro navegador puede utilizarse entonces para instanciar la clase Selenium WebDriver adecuada. Como el valor del navegador se utiliza en todos los m\u00e9todos de prueba, es mejor utilizar la variable del navegador en el m\u00e9todo @BeforeTest.<\/p>\n\n<p>El m\u00e9todo beforeTest con el par\u00e1metro @Par\u00e1metro TestNG tendr\u00e1 el siguiente aspecto:<\/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>Como ya se ha dicho, el valor de la variable del navegador se pasa a los scripts de prueba a trav\u00e9s del archivo testng.xml. Este archivo testng.xml contendr\u00e1 una etiqueta de par\u00e1metro con la variable del navegador y su valor.<\/p>\n\n<p>Aqu\u00ed creamos dos pruebas, una para Firefox y otra para Chrome con diferentes valores de navegador. Consulta el siguiente fragmento del archivo testng.xml para comprender el concepto de parametrizaci\u00f3n de pruebas.<\/p>\n\n<p>Ten en cuenta tambi\u00e9n que especificar parallel=\u00bbtests\u00bb en la etiqueta Suite har\u00e1 que las dos pruebas se ejecuten en paralelo.<\/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>Cuando ejecutes la prueba utilizando el archivo testng.xml, la prueba se ejecutar\u00e1 en paralelo para todos los navegadores especificados (en nuestro caso Firefox y Chrome).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>pruebas multi navegador: integraci\u00f3n de Selenium con TestNG con anotaci\u00f3n para parametrizar el script de prueba con diferentes valores de navegador.<\/p>\n","protected":false},"author":8,"featured_media":1826,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[36],"tags":[],"class_list":["post-1825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-testng"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/comments?post=1825"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1825\/revisions"}],"predecessor-version":[{"id":1827,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1825\/revisions\/1827"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/1826"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=1825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=1825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=1825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}