Configuration de l'environnement de développement pour votre framework d'automatisation de test

Nous allons commencer par mettre en place l'environnement de développement, écrire le premier test, saisir les principes de l'automatisation des tests et découvrir les différentes méthodes de détection des éléments. Nous allons commencer par ouvrir Visual Studio et créer un nouveau projet - «MyFirstTest».

Mise en place de l'environnement de développement

  1. NUnit

    NUnit est un framework de test unitaire pour tous les langages .NET. NUnit est un framework de test unitaire pour tous les langages .Net. Initialement portée à partir de JUnit, la version de production actuelle, la version 3.0, a été complètement réécrite avec de nombreuses nouvelles fonctionnalités et la prise en charge d'un large éventail de plates-formes .NET.

  1. Sélénium WedDriver 3

Selenium est un framework de test d'applications Web qui vous permet d'écrire des tests dans de nombreux langages de programmation tels que Java, C #, Perl, PHP, Python et Ruby. Selenium se déploie sur Windows, Linux et MAC OS. Il s'agit d'un projet open source, publié sous la licence Apache 2.0.

Notre framework prendra en charge les 3 pilotes de navigateur suivants:

  1. Pilote Chrome - le navigateur Chrome de Google.

  2. Pilote IE - Navigateur Internet Explorer de Microsoft Windows.

  3. FireFox Driver - Le navigateur Firefox de Mozilla.

Il existe plusieurs façons de télécharger ces ressources, nous les téléchargerons en utilisant «Gérer les packages NuGet» par un clic droit sur Référence> Gérer les packages Nuget.

Passez à l'onglet «Parcourir», recherchez les ressources ci-dessus dans Gérer les packages Nuget et téléchargez-les. Une fois l'installation terminée, l'onglet affichera les éléments suivants:

Ensuite, nous allons fermer le gestionnaire de packages NuGet et revenir à notre projet en cliquant sur Classe 1. Nous devrons ajouter le Framework NUnit à notre projet en écrivant: using NUnit .Framework;

Le mot clé "using" a deux objectifs principaux:

  • En tant que directive, lorsqu'il est utilisé pour créer un alias pour un espace de noms ou pour importer des types définis dans d'autres espaces de noms.
  • En tant qu'instruction, lorsqu'elle définit une portée à la fin de laquelle un objet sera supprimé. Voir utilisation de Statement .

Ensuite, en haut de notre classe, nous ajouterons l'attribut suivant: [TestFixture]

Le but est de marquer une classe qui contient un test et éventuellement des méthodes de configuration ou de démontage.

L'attribut suivant sera: 

TestFixtureSetUp

Cet attribut est utilisé à l'intérieur du [TestFixture] pour fournir un ensemble unique de fonctions qui sont exécutées une fois, avant d'exécuter l'un des tests dans l'appareil. Maintenant, construisons cette fonction:

public void startTest () // Cette méthode sera déclenchée au début du test
{

}

Ensuite, nous devrons gérer l'attribut TestFixtureTearDown, qui est utilisé dans un TestFixture pour fournir un ensemble unique de fonctions qui sont exécutées une fois, une fois tous les tests terminés. Nous pouvons commencer à construire cette fonction:

public void endtest () // Cette méthode sera déclenchée à la fin du test
{

}

Après avoir terminé les fonctions SetUp et TearDown, notre environnement ressemblera à ceci:

using NUnit.Framework;

yournamespace
{
   [TestFixture ]
  public class AutomationCore
 {
    // Notre cours d'automatisation des tests de base
   [TestFixtureSetUp ]
   public void startTest ( ) // Cette méthode sera déclenchée au début du test
   {
   }

   [TestFixtureTearDown ]
   public void endTest ( ) // Cette méthode sera déclenchée à la fin du test
   {
   }
 }
}

À ce stade, nous sommes enfin prêts à commencer à écrire notre premier test de base en écrivant une nouvelle fonction et en utilisant la balise [Test] au-dessus. L'attribut [Test] marque une méthode spécifique dans une classe qui a déjà été marquée comme TestFixture, en tant que méthode de test. Pour une compatibilité ascendante avec les versions précédentes de Nunit, une méthode de test sera également trouvée si les 4 premières lettres sont «Test» indépendamment de la casse.

Créons maintenant un test qui ouvrira notre navigateur et entrera dans notre blog:

[Test]
public void blogTest( )
{

}

Cependant, avant de commencer avec le contenu du test, nous devrons redémarrer nos pilotes et créer une variable: le pilote IWebDriver que nous créerons lors de la configuration de la fonction.

Ajoutez les commandes suivantes dans la fonction startTest ():

pilote = nouveau ChromeDriver ();
driver.Url = "http://blog.testproject.io/";

La première commande crée une nouvelle instance de notre pilote Chrome et la seconde accède à la page de notre blog. Maintenant, nous revenons à l'écriture du test lui-même dans la fonction du test. Jusque-là, nous nous occupions de la mise en place du test, nous continuerons à la fonction, en écrivant la commande suivante, qui reçoit le titre du navigateur et confirme que le mot 'blog' existe.

Assert.IsTrue (driver.Title.Contains («blog»));

Dans le cas où cela existe, le test passera.

Au cas où il n'existe pas, le test échouera.

Maintenant, nous allons créer le projet et nous remarquerons que le test apparaît dans la fenêtre «Explorateur de tests» de Visual Studio.

 Terminez en exécutant le test en cliquant sur «Exécuter». Ce sera le code du projet:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using NUnit.Framework;

yournamespace
{
   [TestFixture]
   public class AutomationCore
   {
        IWebDriver driver;

        [TestFixtureSetUp]
        public void startTest ( )
        {
             driver = new ChromeDriver( ) ;
             driver.Url = "http://blog.testproject.io/" ;
        }

       [TestFixtureTearDown]
       public void endtest ( )
       {
            driver.Quit( ) ;
       }

      [Test]
      public void blogTest ( )
      {
            Assert.IsTrue(Pages.contactUs.IsAt()) ;
      }
   }
}

Vous venez de terminer l'environnement de votre cadre d'automatisation de test, passez à l'étape suivante: Comment inspecter les éléments Web et les méthodes pour les localiser avec Chrome Devtools .

-Je serais heureux de lire tous vos commentaires, pensées et idées!


Rejoindre la conversation