in

didierdanse.net

Site personnel de Didier Danse
Didier Danse's Personnal Website
Microsoft Most Valuable Professional SharePoint

This Blog

Syndication

didierdanse.net - Les news Developpement

May 2010 - Posts

  • Utilisation de Selenium dans un contexte SharePoint

    Peu importe la technologie ciblée lors d’un développement, il convient de réaliser un maximum de tests. Malheureusement on est généralement confronté à un problème simple: quel outil choisir pour la réalisation de ces tests.

    Dans un environnement Microsoft, on serait tenter de mettre en avant les outils de tests présents dans Team System. Cependant, parfois il n’est pas nécessaire de mettre un autre produit, gratuit. En l’occurence, ce post a pour but de montrer l’utilisation de Selenium, outil de tests web.

    Selenium se décline en divers modules. Sur cette base, des tests ont été effectués avec :

    • Selenium IDE (plugin Firefox)
    • Selenium RC

    Selenium IDE

    L’IDE permet d’enregistrement une suite d’actions et de la rejouer rapidement. Pour cela, Selenium ajoute du code lui permettant d’effectuer les dites actions sans intervention humaine.

    clip_image001

    Durant les tests effectués, il est arrivé que Selenium ne puisse rejouer les tests qu’il a lui-même enregistré, cela a cause des identifiants qui varient d’un chargement à l’autre de la page ou d’autres modifications du genre.

    Les points positifs de Selenium IDE :

    • Open Source ;
    • Fonctionnalités globales permettant de couvrir des scénarios simples et systématiques.

    Les points négatifs de Selenium IDE :

    • Ne fonctionne que sur Firefox ;
    • L’interface manque de convivialité. Certaines actions simples et fréquentes nécessitent des opérations manuelles dans des fichiers ;
    • Par défaut, pas d’utilisation possible de boucles ;
    • Par défaut, pas d’utilisation possible de conditions ;
    • Nécessité de travailler avec des tests à part entière et donc impossibilité de « passer des paramètres » à une activité sans pour autant placer ces conditions ;
    • La multiplication des scénarios nécessitent cette même multiplication des tests proprement dits. Toute modification doit se faire sur l’ensemble des tests dupliqués.

    Selenium RC

    Selenium RC (Remote Control) est un serveur qui fait office de Proxy (l’application envoie une requête à Selenium RC et Selenium la transmet au serveur destinataire). Comme pour l’IDE, il ajoute du code javascript lui permettant d’accéder et manipuler la page.

    clip_image003

    Les points positifs :

    • Open Source ;
    • Multi-navigateurs ;
    • Apprentissage rapide (pas de nouvel outil car possibilité d’utilisation du langage de prédilection du développeur) ;
    • Possibilité de créer une librairie d’objets réutilisables afin d’éviter les erreurs, d’avoir des opérations communes et aussi d’accélérer la réalisation de tests ;
    • Meilleure gestion des informations affichées (il n’est pas nécessaire de faire du nettoyage) ;
    • Possibilité d’étendre plus facilement les fonctionnalités de Selenium ;
    • Facilité de mise en œuvre de tests qui peuvent utiliser comme source des fichiers, une base de données ou tout autre chose qui est géré par la technologie utilisée.

    Les points négatifs :

    • Nécessité d’installer Java sur la machine qui sert de proxy (il est possible d’utiliser un seul serveur pour différentes personnes).

    Pour lancer des tests au travers de Selenium RC, il est nécessaire d’écrire du code chargé de dialoguer avec Selenium RC lui même responsable de charger et d’injecter les informations nécessaires dans les pages.

    Exemple simple de code utilisable dans un contexte SharePoint. Le code parle de lui-même :

    foreach (string groupName in groupNames)
    {
        #region Add user to group
    
        if (!SPTests.ExistsGroup(groupName))
            Assert.Fail("Group '" + groupName + "' doesn't exist");
                SPTests.AddMemberToGroup(TESTUSER1_USERNAME, groupName);
    
        if (isISAServerUsed) SPTests.DisconnectCurrentUser();
    
        SPTests.OpenPage(rootRelativeUrl, possibleTitles);
        #endregion
    
        #region Operations
        SPTests.Authentication_ISAServer(TESTUSER1_USERNAME, TESTUSER1_PASSWORD);
    
        // Operations with current user
        if (isISAServerUsed) SPTests.DisconnectCurrentUser();
            SPTests.OpenPage(rootRelativeUrl, possibleTitles);
        #endregion
    
        #region Remove user from group
        SPTests.Authentication_ISAServer(ADMINUSERS_USERNAME, ADMINUSERS_PASSWORD);    
        SPTests.RemoveMemberToGroup(TESTUSER1_USERNAME, groupName);
    
        if (isISAServerUsed) SPTests.DisconnectCurrentUser();
            SPTests.OpenPage(rootRelativeUrl, possibleTitles);
        #endregion
    }

    ______

    public void RemoveMemberToGroup(string memberName, string groupName)
    {
        OpenGroupPage(groupName);
        selenium.Check("//input[@account='" + memberName + "']");
    
        try
        {
            selenium.ChooseOkOnNextConfirmation();
            selenium.RunScript("BLOCKED SCRIPTBtnRemoveUsersClick(currentViewId, true);");
        }
        catch (SeleniumException)
        {
            // Handle SeleniumException because of Confirmation not allowed. Deletion is ok
         }            
    }

    Documentation au sujet de Selenium: http://seleniumhq.org/docs/index.html

    Selenium ne permet d’effectuer que des tests simples. Pour réaliser des scénarios ou encore des tests de charge, PushToTest TestMaker est l’outil idéalement. Le prix est relativement peu élévé par rapport aux fonctionnalités proposées. Pour plus d’info: http://www.pushtotest.com/index.php/comparison.

  • Les Language Packs SharePoint 2010 Foundation sont là

    Ils sont dispos et prêts à être installés depuis l’URL suivante: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=646e311a-aaf3-4d30-b03c-2f3c70d19a22

    L’installation ne pose guère de soucis, c’est pourquoi nous n’en ferons qu’un rapide aperçu. Mais démarrons par la plus grosse difficulté dans ce processus… Le choix de la langue du language pack! Et oui, la majorité d’entre ont eu le cas de télécharger un language pack anglais en lieu de celui voulu. Google ou encore Bing indexent les pages dans les différentes langues tandis que l’url reste identique. Lors d’une recherche, nous arrivons donc sur la dite page dont la langue correspond à vos paramètres et non à notre recherche. Et c’est ainsi qu’on installe un language pack en anglais sur un SharePoint qui l’était tout autant. Sélectionnez donc bien la bonne langue dans l’encadré rouge ci-dessous:

    image 

    Notez qu’il faut compter entre 110 et 170MB pour les languages packs les plus courants. Voici un exemple avec le language pack en français (notez que le nom du fichier envoyé par le serveur de download n’est pas très explicite à ce sujet):

    image

    Et voilà, le plus dur est passé, la suite, vous la connaissez… next, next et next :-)

    image image image 

    image image

    Comme indiqué, n’oubliez pas d’exécuter le wizard de config dès que le temps vous le permet!

    Une fois fait, rendez-vous dans un site quelconque. Dans les site settings, vous y trouverez un lien Language settings.

    image

    En suivant ce lien, vous pourrez ainsi indiquer les langues qui peuvent être utilisées dans ce site comme indiqué sur la capture d’écran suivante:

    image

    Les utilisateurs pourront dès lors sélectionner la langue qui leur convient le mieux.

    image

    Tout ce qui est "out-of-the-box" est ainsi traduit (les menus, le ruban, …).

    image

    Il existe bien d’autres fonctionnalités autour du multilinguisme. Nous en reparlerons certainement dans les prochaines semaines tant elles sont utiles et intéressantes dans cette version 2010 de SharePoint.

More Posts
L'auteur du site ne peut être tenu responsable des dommages que les informations fournies pourraient entraîner. Tout est cependant mis en oeuvre pour éviter tout désagrément.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems