Fermer

avril 24, 2019

Laissez vos tests partager la même instance de navigateur


L'une des fonctionnalités que j'apprécie le plus dans WebAii v2.0 est l'option de RecycleBrowser . Il modifie le comportement de vos tests, c’est-à-dire qu’ils continuent de s’exécuter dans la même instance de navigateur (lorsque le paramètre est défini sur «true») au lieu d’ouvrir un nouveau navigateur pour chaque test. La valeur par défaut est "false" pour assurer la cohérence avec le comportement des versions précédentes de la structure. Vous pouvez mettre à jour par programmation ce paramètre via la classe de paramètres ou à l'aide du fichier de configuration de l'application .

Cependant, vous devriez garder à l'esprit certains détails lorsque vous utilisez cette option.

Nous utilisons depuis le début l'option RecycleBrowser dans les projets de tests exemples de WebAii Testing Framework (AJAX et Silverlight). Ces projets sont basés sur le support WebAii VSTS .

Si vous installez la structure et chargez l'un de ces projets dans VS 2008, vous remarquerez l'initialisation des paramètres dans notre classe de test de base. Voici la méthode d’initialisation importante (notez que notre classe de test de base étend le modèle ArtOfTest.WebAii.TestTemplates. Modèle de baseTest ):

    [TestClass]
     public   de classe  RadControlsBaseTest: BaseTest
    {

         // Utilisez TestInitialize pour exécuter le code avant chaque test 
        [TestInitialize()]
         public   void  MyTestInitialize ()
        {
             #region  Initialisation de WebAii

             // Initialize (this.TestContext.TestLogsDir, new TestContextWriteLine (this.TestContext.WriteLine)); 
                        
            Paramètres paramètres = GetSettings ();
            settings.DefaultBrowser = BrowserType.InternetExplorer;
             settings.RecycleBrowser =  true ; 
            settings.BaseUrl =  "http://demos.telerik.com/aspnet-ajax" ;
            settings.ClientReadyTimeout = 60000;
            settings.ExecuteCommandTimeout = 60000;
            settings.AnnotateExecution =  true ;
            settings.AnnotationMode = AnnotationMode.All;
                
             // Appelez maintenant à nouveau Initialize avec votre objet de paramètres mis à jour 
            Initialize (paramètres,  new  TestContextWriteLine ( this  .TestContext.WriteLine));

             // Définit la méthode de test actuelle. Ceci est nécessaire pour que WebAii découvre   // son ensemble TestAttributes personnalisé sur les méthodes et les classes.   // Cette méthode doit toujours exister dans la méthode [TestInitialize()]. 
            SetTestMethod ( this ( string ) TestContext.Properties [ "NomTest" ]);

             #endregion   //   // Placez ici toute initialisation supplémentaire   // 

        } 

Et si vous vous retrouvez avec ce code uniquement, vous remarquerez que le navigateur ne se lance qu'une seule fois (comme prévu) même si vous appelez

 Manager.LaunchNewBrowser (); 

dans chacun de vos tests. Comme le navigateur ne se ferme pas à la fin du test, il reste ouvert à la fin de l’exécution du groupe de tests. Vous pouvez utiliser BaseTest.ShutDown () pour fermer le navigateur. La méthode doit être appelée dans la routine marquée avec l'attribut ClassCleanup pour chacune des classes de test * qui héritent de notre test de base. De cette façon, vous vous retrouvez avec un navigateur fermé, peu importe les tests que vous choisissez d'exécuter.

Voici un exemple de code:

    [TestClass]
     public   class  GridPagingTests: RadControlsBaseTest
    {
         // Utilisez ClassCleanup pour exécuter le code après l'exécution de tous les tests d'une classe. 
        [ClassCleanup()]
         public   static   void  GridPagingClassCleanup ()
        {
            Fermer();
        }

        [TestMethod]
         public   void  PagingAjaxTest ()
        {
            Manager.LaunchNewBrowser ();
            ActiveBrowser.NavigateTo ( "/ grid / examples / programming / webmail / defaultcs.aspx" );

            Pager GridPager = Find.ById  ( "RadGrid1" ). Pager;
            pager.LoadNextPage ();

            Wait.For  (myPager => myPager.CurrentPageIndex == 1, pager, 5000);
            Assert.AreEqual (1, pager.CurrentPageIndex);
        }
    } 

J'espère que cette explication aide!

Dans les prochains articles, je vais essayer de couvrir davantage de fonctionnalités du nouveau WebUI Test Studio v2.0 et du framework de test.

-Konstantin

* Malheureusement, en raison d'un problème rencontré dans le test VSTS (un ancien test que j'ai trouvé à l'origine mentionné ici ), vous ne pouvez pas implémenter la méthode ClassCleanup dans la classe de base – elle ne ne pas être appelé s'il ne fait pas partie des classes héritées.


Les commentaires sont désactivés en mode Aperçu.




Source link