Teste entre navegadores usando Selenium webdriver
Teste entre navegadores usando Selenium
Teste entre navegadores รฉ um tipo de teste funcional para verificar se sua aplicaรงรฃo web funciona conforme o esperado em diferentes navegadores.
Por que precisamos de testes entre navegadores?
Os aplicativos baseados na Web sรฃo totalmente diferentes dos Windows formulรกrios. Uma aplicaรงรฃo web pode ser aberta em qualquer navegador pelo usuรกrio final. Por exemplo, algumas pessoas preferem abrir https://twitter.com in Firefox navegador, enquanto outros podem estar usando Navegador Chrome or IE.
No diagrama abaixo vocรช pode observar que em IE, a caixa de login do Twitter nรฃo mostra curva em todos os cantos, mas podemos ver isso no navegador Chrome.
Portanto, precisamos garantir que a aplicaรงรฃo web funcionarรก conforme esperado em todos os navegadores populares, para que mais pessoas possam acessรก-la e utilizรก-la.
Este motivo pode ser cumprido com Cross Browser Testes do produto.
Motivo dos problemas entre navegadores
- Incompatibilidade de tamanho de fonte em diferentes navegadores.
- JavaA implementaรงรฃo do script pode ser diferente.
- A diferenรงa de validaรงรฃo de CSS e HTML pode estar presente.
- Alguns navegadores ainda nรฃo suportam HTML5.
- Alinhamento da pรกgina e tamanho do div.
- Orientaรงรฃo da imagem.
- Incompatibilidade do navegador com o sistema operacional. Etc.
Como fazer testes entre navegadores
Se estivermos usando Selenium WebDriver, podemos automatizar casos de teste usando Internet Explorer, FireFox, Navegadores Chrome, Safari.
Para executar casos de teste com diferentes navegadores na mesma mรกquina ao mesmo tempo podemos integrar TestNG quadro com Selenium WebDriver.
Seu test.xml ficarรก assim,
Este testing.xml serรก mapeado com o Caso de teste que vai ficar assim
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.
Segundo teste 'FirefoxTest' passarรก o valor do parรขmetro 'browser' como 'Firefox' entรฃo FirefoxO driver serรก executado. Este caso de teste serรก executado no FireFox navegador.
Guru99CrossBrowserScript.java
Automaรงรฃo Code:
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 {
WebDriver driver;
/**
* This function will execute before each Test tag in testng.xml
* @param browser
* @throws Exception
*/
@BeforeTest
@Parameters("browser")
public void setup(String browser) throws Exception{
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe");
driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe
System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
//create chrome instance
driver = new ChromeDriver();
}
//Check if parameter passed as 'Edge'
else if(browser.equalsIgnoreCase("Edge")){
//set path to Edge.exe
System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe");
//create Edge instance
driver = new EdgeDriver();
}
else{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testParameterWithXML() throws InterruptedException{
driver.get("https://demo.guru99.com/V4/");
//Find user name
WebElement userName = driver.findElement(By.name("uid"));
//Fill user name
userName.sendKeys("guru99");
//Find password
WebElement password = driver.findElement(By.name("password"));
//Fill password
password.sendKeys("guru99");
}
}
testando.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="2" parallel="tests" > <test name="ChromeTest"> <parameter name="browser" value="Chrome" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="Firefox" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="Edge" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> </suite>
OBSERVAรรO: Para executar o teste, clique com o botรฃo direito no teste.xml, Selecione Executar como e clique em TestNG
Resumo
- O teste entre navegadores รฉ uma tรฉcnica para testar aplicativos da web com diferentes navegadores.
- Selenium pode suportar diferentes tipos de ferramenta de teste em vรกrios navegadores para automaรงรฃo.
- Selenium pode ser integrado com 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 WebDriver de acordo.
Observaรงรฃo: O programa fornecido foi construรญdo e testado em Selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Se os programas apresentarem erro, atualize o driver
Faรงa o download do Selenium Arquivos de projeto para demonstraรงรฃo neste tutorial





