Tests multi-navigateurs utilisant Selenium pilote web

Tests multi-navigateurs utilisant Selenium

Test de navigateur croisé est un type de test fonctionnel pour vérifier que votre application Web fonctionne comme prévu dans différents navigateurs.

Tests multi-navigateurs utilisant Selenium

Pourquoi avons-nous besoin de tests multi-navigateurs ?

Les applications Web sont totalement différentes de Windows applications. Une application Web peut être ouverte dans n'importe quel navigateur par l'utilisateur final. Par exemple, certaines personnes préfèrent ouvrir https://twitter.com in Firefox navigateur, tandis que d'autres peuvent utiliser Navigateur Chrome or IE.

Dans le diagramme ci-dessous, vous pouvez observer que dans IE, la boîte de connexion de Twitter n'affiche pas de courbe à tous les coins, mais nous pouvons la voir dans le navigateur Chrome.

Test de navigateur croisé

Nous devons donc nous assurer que l’application Web fonctionnera comme prévu dans tous les navigateurs courants afin que davantage de personnes puissent y accéder et l’utiliser.

Ce motif peut être réalisé avec Cross Browser USP,EP, BP du produit.

Raison des problèmes entre navigateurs

  1. Incompatibilité de taille de police dans différents navigateurs.
  2. JavaL'implémentation du script peut être différente.
  3. La différence de validation CSS et HTML peut être là.
  4. Certains navigateurs ne prennent toujours pas en charge HTML5.
  5. Alignement des pages et taille des div.
  6. Orientation des images.
  7. Incompatibilité du navigateur avec le système d'exploitation. Etc.

Comment effectuer des tests multi-navigateurs

Si nous utilisons Selenium WebDriver, nous pouvons automatiser les cas de test en utilisant Internet Explorer, FireFox, Chrome, Safari.

Pour exécuter des cas de test avec différents navigateurs sur la même machine en même temps, nous pouvons intégrer TestNG cadre avec Selenium Pilote Web.

Votre testing.xml ressemblera à ça,

Test de navigateur croisé

Ce testing.xml correspondra au Cas de test qui ressemblera à ça

Test de navigateur croisé

Ici parce que le testing.xml a deux balises de test (« ChromeTest », »FirefoxTest'), ce scénario de test s'exécutera deux fois pour 2 navigateurs différents.

Le premier test « ChromeTest » transmettra la valeur du paramètre « navigateur » comme « chrome » afin que ChromeDriver soit exécuté. Ce scénario de test s'exécutera sur le navigateur Chrome.

Deuxième essai'FirefoxTest' transmettra la valeur du paramètre 'navigateur' comme 'Firefox' donc FirefoxLe pilote sera exécuté. Ce scénario de test s'exécutera sur FireFox navigateur.

Guru99CrossBrowserScript.java

Code complet :

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");
	}
}

test.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>

NOTE: Pour lancer le test, faites un clic droit sur l'icône test.xml, Sélectionnez Exécuter en tant que, puis cliquez sur TestNG

Test de navigateur croisé

Résumé

  1. Les tests multi-navigateurs sont une technique permettant de tester une application Web avec différents navigateurs Web.
  2. Selenium peut prendre en charge différents types de outil de test multi-navigateurs pour l'automatisation.
  3. Selenium peut être intégré avec TestNG pour effectuer des tests multi-navigateurs.
  4. À partir des paramètres de testing.xml, nous pouvons transmettre le nom du navigateur et, dans un cas de test, nous pouvons créer une référence WebDriver en conséquence.

Remarque: Le programme donné a été construit et testé sur Selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Si les programmes génèrent une erreur, veuillez mettre à jour le pilote

Télécharger Selenium Fichiers de projet pour la démo de ce didacticiel