Test de navigateurs croisés avec Selenium WebDriver

Table des matières:

Anonim

Qu'est-ce que le test Cross Browser?

Cross Browser Testing est un type de test fonctionnel pour vérifier que votre application Web fonctionne comme prévu dans différents navigateurs.

Pourquoi avons-nous besoin de tests multi-navigateurs?

Les applications Web sont totalement différentes des applications Windows. 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 dans le navigateur Firefox, tandis que d'autres peuvent utiliser le navigateur Chrome ou IE .

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

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 rempli avec des tests de navigateurs croisés du produit.

Raison des problèmes de navigateur croisé

  1. Différence de taille de police dans différents navigateurs.
  2. L'implémentation JavaScript 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 de la page et taille div.
  6. Orientation de l'image.
  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 les navigateurs Internet Explorer, FireFox, Chrome, Safari.

Pour exécuter des cas de test avec différents navigateurs dans la même machine en même temps, nous pouvons intégrer le framework Testng avec Selenium WebDriver.

Votre test.xml ressemblera à ça,

Ce testing.xml sera mappé avec le scénario de test qui ressemblera à ça

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

Le premier test 'ChromeTest' passera la valeur du paramètre 'browser' comme 'chrome' afin que ChromeDriver soit exécuté. Ce cas de test fonctionnera sur le navigateur Chrome.

Le deuxième test 'FirefoxTest' passera la valeur du paramètre 'browser' comme 'Firefox' afin que FirefoxDriver soit exécuté. Ce cas de test fonctionnera sur le navigateur FireFox.

Code complet:

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;classe publique CrossBrowserScript {Pilote WebDriver;/ *** Cette fonction s'exécutera avant chaque balise Test dans testng.xml* Navigateur @param* @throws Exception* /@BeforeTest@Parameters ("navigateur")public void setup (navigateur de chaînes) lève une exception {// Vérifie si le paramètre passé de TestNG est 'firefox'if (browser.equalsIgnoreCase ("firefox")) {// créer une instance de FirefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");pilote = nouveau FirefoxDriver ();}// Vérifie si le paramètre est passé en tant que 'chrome'else if (browser.equalsIgnoreCase ("chrome")) {// définir le chemin vers chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// créer une instance de chromepilote = nouveau ChromeDriver ();}// Vérifie si le paramètre est passé en tant que 'Edge'else if (browser.equalsIgnoreCase ("Edge")) {// définir le chemin vers Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// créer une instance Edgepilote = nouveau EdgeDriver ();}autre{// Si aucun navigateur n'a passé, lance l'exceptionlancer une nouvelle exception ("Le navigateur n'est pas correct");}driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);}@Testpublic void testParameterWithXML () lance InterruptedException {driver.get ("http://demo.guru99.com/V4/");// Trouver le nom d'utilisateurWebElement userName = driver.findElement (By.name ("uid"));// Remplissez le nom d'utilisateuruserName.sendKeys ("guru99");//Trouver le mot de passeMot de passe WebElement = driver.findElement (Par.nom ("mot de passe"));// Remplissez le mot de passepassword.sendKeys ("guru99");}}

testing.xml




REMARQUE: pour exécuter le test, cliquez avec le bouton droit sur testing.xml, sélectionnez Exécuter en tant que et cliquez sur TestNG

Résumé

  1. Le test de navigateur croisé est une technique permettant de tester une application Web avec différents navigateurs Web.
  2. Selenium peut prendre en charge différents types de navigateurs pour l'automatisation.
  3. Selenium peut être intégré à 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 sélénium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 et Microsoft Edge 14.14393. Si les programmes donnent une erreur, veuillez mettre à jour le pilote

Téléchargez les fichiers de projet Selenium pour la démonstration dans ce didacticiel