O que é o teste cruzado de navegadores?
O Teste Cruzado de Navegadores é um tipo de teste funcional para verificar se seu aplicativo da web funciona conforme o esperado em navegadores diferentes.
Por que precisamos do teste cruzado de navegadores?
Os aplicativos baseados na Web são totalmente diferentes dos aplicativos do Windows. Um aplicativo da web pode ser aberto em qualquer navegador pelo usuário final. Por exemplo, algumas pessoas preferem abrir https://twitter.com no navegador Firefox, enquanto outras podem estar usando o navegador Chrome ou IE .
No diagrama abaixo você pode observar que no IE , a caixa de login do Twitter não mostra nenhuma curva em todos os cantos, mas podemos ver no navegador Chrome.
Portanto, precisamos garantir que o aplicativo da web funcione conforme o esperado em todos os navegadores populares para que mais pessoas possam acessá-lo e usá-lo.
Este motivo pode ser cumprido com o Teste Cross Browser do produto.
Motivo de problemas entre navegadores
- Tamanho da fonte incompatível em navegadores diferentes.
- A implementação de JavaScript pode ser diferente.
- CSS, diferença de validação de HTML pode estar lá.
- Alguns navegadores ainda não oferecem suporte a HTML5.
- Alinhamento de página e tamanho div.
- Orientação da imagem.
- Incompatibilidade do navegador com o sistema operacional. Etc.
Como realizar testes entre navegadores
Se estivermos usando o Selenium WebDriver, podemos automatizar os casos de teste usando os navegadores Internet Explorer, FireFox, Chrome, Safari.
Para executar casos de teste com navegadores diferentes na mesma máquina ao mesmo tempo, podemos integrar o framework Testng com Selenium WebDriver.
Seu testing.xml ficará assim,
Este testing.xml será mapeado com o caso de teste que se parecerá com isso
Aqui, porque o testing.xml tem duas tags de teste ('ChromeTest', 'FirefoxTest'), este caso de teste será executado duas vezes para 2 navegadores diferentes.
O primeiro teste 'ChromeTest' passará o valor do parâmetro 'browser' como 'chrome' para que o ChromeDriver seja executado. Este caso de teste será executado no navegador Chrome.
O segundo teste 'FirefoxTest' passará o valor do parâmetro 'navegador' como 'Firefox' para que FirefoxDriver seja executado. Este caso de teste será executado no navegador FireFox.
Código Completo:
Guru99CrossBrowserScript.java
package parallelTest;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.edge.EdgeDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.BeforeTest;import org.testng.annotations.Parameters;import org.testng.annotations.Test;public class CrossBrowserScript {Driver WebDriver;/ *** Esta função será executada antes de cada tag de teste em testng.xml* @param browser* @throws Exception* /@BeforeTest@Parameters ("navegador")public void setup (String browser) lança exceção {// Verifique se o parâmetro passado do TestNG é 'firefox'if (browser.equalsIgnoreCase ("firefox")) {// cria instância do firefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");driver = novo FirefoxDriver ();}// Verifique se o parâmetro foi passado como 'chrome'else if (browser.equalsIgnoreCase ("chrome")) {// definir o caminho para chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// cria instância do Chromedriver = novo ChromeDriver ();}// Verifique se o parâmetro foi passado como 'Edge'else if (browser.equalsIgnoreCase ("Edge")) {// definir o caminho para Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// cria instância do Edgedriver = novo EdgeDriver ();}outro{// Se nenhum navegador passou, lance exceçãolance uma nova exceção ("O navegador não está correto");}driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);}@Testepublic void testParameterWithXML () throws InterruptedException {driver.get ("http://demo.guru99.com/V4/");// Encontre o nome do usuárioWebElement userName = driver.findElement (By.name ("uid"));// Preencha o nome do usuáriouserName.sendKeys ("guru99");//Encontrar senhaWebElement senha = driver.findElement (By.name ("senha"));// Preencha a senhapassword.sendKeys ("guru99");}}
testing.xml
xml version = "1.0" encoding = "UTF-8"?>
NOTA: Para executar o teste, clique com o botão direito do mouse em testing.xml, selecione Executar como e clique em TestNG
Resumo
- Teste de navegador cruzado é uma técnica para testar aplicativos da web com diferentes navegadores da web.
- Selenium pode suportar diferentes tipos de navegadores para automação.
- O Selenium pode ser integrado ao TestNG para realizar testes em vários navegadores.
- A partir dos parâmetros em testing.xml, podemos passar o nome do navegador e, em um caso de teste, podemos criar a referência do WebDriver de acordo.
Nota: O programa fornecido foi construído e testado em selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 e Microsoft Edge 14.14393. Se os programas apresentarem um erro, atualize o driver
Baixe os arquivos do projeto Selenium para a demonstração neste Tutorial