Tester dans plusieurs navigateurs avec TestNG

Tester dans plusieurs navigateurs avec TestNG
MIN
20 Mar 2024

Dans ce tutoriel, nous allons aborder le test de plusieurs navigateurs dans Selenium ainsi que sa mise en œuvre. Pour ce faire, nous allons intégrer Selenium à TestNG et utiliser l’annotation @Parameter de TestNG pour paramétrer le script de test avec différentes valeurs de navigateur.

Notez également que les tests multi-navigateurs peuvent également être effectués à l’aide de Selenium Grid. Cependant, nous utiliserons ici TestNG et Selenium WebDriver uniquement pour mettre en œuvre les tests inter-navigateurs.

Table des matières

Qu’est-ce que les tests multi-navigateurs ?

Les tests inter-navigateurs sont un type de test dans lequel l’application testée est testée avec plusieurs navigateurs pris en charge. La nécessité de tests multi-navigateurs découle du fait que les différents navigateurs ont des implémentations d’interface utilisateur différentes. Il n’y a donc aucun moyen de s’assurer que les applications qui fonctionnent dans Chrome fonctionnent également de manière transparente dans IE.

Tests inter-navigateurs avec Selenium et TestNG

Les tests inter-navigateurs dans Selenium peuvent être effectués en utilisant des paramètres variables de navigateur. Nous pouvons utiliser l’annotation @Parameter dans TestNG pour paramétrer la variable du navigateur. En utilisant l’annotation @Parameter, nous pouvons transmettre diverses valeurs de navigateur aux scripts de test à partir du fichier testng.xml.

La valeur du paramètre du navigateur peut alors être utilisée pour instancier la classe Selenium WebDriver appropriée. Comme la valeur du navigateur est utilisée dans toutes les méthodes de test, il est préférable d’utiliser la variable navigateur dans la méthode @BeforeTest.

La méthode beforeTest avec le paramètre @Parameter TestNG se présente comme suit :

@Parameters("browser")

@BeforeTest

public void setBrowser(String browser)

{

   if (browser.equalsIgnoreCase("Firefox")) {

      driver = new FirefoxDriver();

   }

   else if (browser.equalsIgnoreCase("Chrome")) {

      System.setProperty("webdriver.chrome.driver", 

         + pathToChromeDriverBinary + "chromedriver.exe");

      driver = new ChromeDriver();

   }

   else {

      throw new IllegalArgumentException("Invalid browser value!!");

   }

   driver.get(URL);

   driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

   driver.manage().window().maximize();

}

Comme indiqué ci-dessus, la valeur de la variable navigateur est transmise aux scripts de test via le fichier testng.xml. Ce fichier testng.xml contiendra une balise paramètre contenant la variable du navigateur et sa valeur.

Ici, nous créons deux tests, un pour Firefox et un pour Chrome avec des valeurs de navigateur différentes. Consultez l’extrait suivant du fichier testng.xml pour comprendre le concept de paramétrage des tests.

Notez également que le fait de spécifier parallel= »tests » dans la balise Suite entraînera l’exécution des deux tests en parallèle.

<suite name="MultiBrowserSuite" parallel="tests" thread-count="2">

   <test name="TestFirefox">

      <parameter name="browser" value="Firefox"/>

      <classes>

         <class name="sampleTestPackage.MultiBrowserTest"/>

      </classes>

   </test>

   <test name="TestChrome">

      <parameter name="browser" value="Chrome"/>

      <classes>

         <class name="sampleTestPackage.MultiBrowserTest"/>

      </classes>

   </test>

</suite>

Lorsque vous exécutez le test à l’aide du fichier testng.xml, le test s’exécute en parallèle pour tous les navigateurs spécifiés (dans notre cas, Firefox et Chrome).