Pruebas de navegador cruzado con Selenium WebDriver

¿Qué son las pruebas de navegador cruzado?

Cross Browser Testing es un tipo de prueba funcional para verificar que su aplicación web funciona como se espera en diferentes navegadores.

¿Por qué necesitamos pruebas de navegador cruzado?

Las aplicaciones basadas en web son totalmente diferentes de las aplicaciones de Windows. El usuario final puede abrir una aplicación web en cualquier navegador. Por ejemplo, algunas personas prefieren abrir https://twitter.com en el navegador Firefox, mientras que otras pueden usar el navegador Chrome o IE .

En el diagrama a continuación, puede observar que en IE , el cuadro de inicio de sesión de Twitter no muestra una curva en todas las esquinas, pero podemos verlo en el navegador Chrome.

Por lo tanto, debemos asegurarnos de que la aplicación web funcione como se espera en todos los navegadores populares para que más personas puedan acceder a ella y usarla.

Este motivo se puede cumplir con la prueba de navegador cruzado del producto.

Motivo de problemas entre navegadores

  1. Discrepancia de tamaño de fuente en diferentes navegadores.
  2. La implementación de JavaScript puede ser diferente.
  3. CSS, la diferencia de validación HTML puede estar ahí.
  4. Algunos navegadores aún no son compatibles con HTML5.
  5. Alineación de página y tamaño de div.
  6. Orientación de la imagen.
  7. Incompatibilidad del navegador con el sistema operativo. Etc.

Cómo realizar pruebas entre navegadores

Si usamos Selenium WebDriver, podemos automatizar casos de prueba usando navegadores Internet Explorer, FireFox, Chrome, Safari.

Para ejecutar casos de prueba con diferentes navegadores en la misma máquina al mismo tiempo, podemos integrar el marco Testng con Selenium WebDriver.

Su testing.xml se verá así,

Este testing.xml se mapeará con el caso de prueba que se verá así

Aquí, debido a que testing.xml tiene dos etiquetas de prueba ('ChromeTest', 'FirefoxTest'), este caso de prueba se ejecutará dos veces para 2 navegadores diferentes.

La primera prueba 'ChromeTest' pasará el valor del parámetro 'navegador' como 'chrome' para que se ejecute ChromeDriver. Este caso de prueba se ejecutará en el navegador Chrome.

La segunda prueba 'FirefoxTest' pasará el valor del parámetro 'browser' como 'Firefox' para que se ejecute FirefoxDriver. Este caso de prueba se ejecutará en el navegador FireFox.

Código completo:

Guru99CrossBrowserScript.java

paquete paraleloTest;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium.edge.EdgeDriver;importar org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.BeforeTest;import org.testng.annotations.Parameters;import org.testng.annotations.Test;clase pública CrossBrowserScript {Controlador WebDriver;/ *** Esta función se ejecutará antes de cada etiqueta de prueba en testng.xml* @param navegador* @throws Exception* /@AntesTest@Parameters ("navegador")La configuración de vacío público (navegador de cadenas) arroja una excepción {// Verifica si el parámetro pasado de TestNG es 'firefox'if (browser.equalsIgnoreCase ("firefox")) {// crea una instancia de FirefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");controlador = nuevo FirefoxDriver ();}// Verifica si el parámetro pasó como 'chrome'else if (browser.equalsIgnoreCase ("chrome")) {// establecer la ruta a chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// crear instancia de Chromecontrolador = nuevo ChromeDriver ();}// Verifica si el parámetro pasó como 'Edge'else if (browser.equalsIgnoreCase ("Edge")) {// establecer la ruta a Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// crea una instancia de Edgecontrolador = nuevo EdgeDriver ();}demás{// Si ningún navegador pasa, lanza una excepciónlanzar una nueva excepción ("El navegador no es correcto");}driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);}@Pruebapublic void testParameterWithXML () lanza InterruptedException {driver.get ("http://demo.guru99.com/V4/");// Encuentra el nombre de usuarioWebElement userName = driver.findElement (By.name ("uid"));// Completar el nombre de usuariouserName.sendKeys ("guru99");//Encontrar contraseñaWebElement contraseña = driver.findElement (By.name ("contraseña"));// Completar contraseñacontraseña.sendKeys ("guru99");}}

testing.xml

NOTA: Para ejecutar la prueba, haga clic con el botón derecho en testing.xml, seleccione Ejecutar como y haga clic en TestNG

Resumen

  1. La prueba entre navegadores es una técnica para probar aplicaciones web con diferentes navegadores web.
  2. Selenium puede admitir diferentes tipos de navegadores para la automatización.
  3. Selenium se puede integrar con TestNG para realizar pruebas de múltiples navegadores.
  4. A partir de los parámetros de testing.xml podemos pasar el nombre del navegador y, en un caso de prueba, podemos crear una referencia de WebDriver en consecuencia.

Nota: El programa dado fue construido y probado en selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 y Microsoft Edge 14.14393. Si los programas dan un error, actualice el controlador

Descargue los archivos de proyecto de Selenium para la demostración en este tutorial

Articulos interesantes...