Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    Consultant freelance, n'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

WebTest Plugin – ignorer les urls externe lors d’un test web Visual Studio

Lorsque l’on fait un test web avec Visual Studio, celui-ci charge les dépendances de la page : images, scripts, css, etc. Dans certains cas, il est possible que les images ne soient pas sur le serveur sur lequel on fait les tests, nous ne voulons alors pas récupérer ses fichiers.

image

Afin d’exclure les requêtes pointant vers une url externe, il est nécessaire de créer un plugin au test web. Un plugin consiste en une classe héritant de WebTestPlugin. Cette classe contient plusieurs méthodes virtuelles, par exemple les méthodes PreRequest et PostRequest qui, comme leurs noms l’indiquent, s’exécutent avant et après la requête.

public class IgnoreExternalFileFilter : WebTestPlugin { public override void PreRequest(object sender, PreRequestEventArgs e) { } public override void PostRequest(object sender, PostRequestEventArgs e) { } }

Au niveau de l’eventArgs de la méthode PreRequest, il est possible de récupérer l’instance de l’objet Request et donc l’url de la requête. Il est également possible de définir l’action pour cette requête : est-ce que l’on continue ou est-ce que l’on ignore la requête.

Dans l’exemple ci dessous, j’exclus les requêtes qui ne pointent pas vers le serveur sur lequel on fait les tests.

public override void PreRequest(object sender, PreRequestEventArgs e) { if (!IsUrlValid(e.Request.Url)) e.Instruction = WebTestExecutionInstruction.Skip; else base.PreRequest(sender, e); }

L’événement PostRequest survient après la requête mais avant le chargement des dépendances. Il est possible de manipuler ses dépendances avant leurs chargements. Ci dessous, je supprime les dépendances qui ne m’intéresse pas.

public override void PostRequest(object sender, PostRequestEventArgs e) { for (int i = e.Request.DependentRequests.Count - 1; i > 0; i--) { WebTestRequest request = e.Request.DependentRequestsIdea; if (!IsUrlValid(request.Url)) { e.Request.DependentRequests.RemoveAt(i); } } base.PostRequest(sender, e); }

Au niveau de la méthode IsUrlValid, rien de bien compliqué :

private String _hostName; private Boolean IsUrlValid(String urlToValidate) { Uri uriToValidate = new Uri(urlToValidate); return String.Equals(uriToValidate.Host, _hostName, StringComparison.InvariantCultureIgnoreCase); }

Je récupère la propriété _hostName à partir des informations de contexte du test web lors de l’événement PreRequest.

private const String WebServerParameterName = "WebServerName"; public override void PreRequest(object sender, PreRequestEventArgs e) { this._hostName = new Uri((String)e.WebTest.Context[WebServerParameterName]).Host; // ... }

Comment utiliser ce plugin ?

La première chose est d’inclure la classe dans votre projet de test. Puis, il faut associer votre plugin à votre test web, pour cela, faites un clic droit sur votre projet web puis “Add Web Test Plugin”

image

Une fenêtre vous indique alors les différents plugins disponible ainsi que leurs propriétés.

image

Enfin, il faut renseigner la propriété de contexte WebServerName qui correspond à l’uri du serveur sur lequel vous voulez faire vos tests. Pour cela, il y a un bouton “Parameterize Web Servers”

image

Il faut alors renseigner la propriété WebServerName avec l’url que vous souhaitez.

image

Au niveau du test web, vous retrouvez l’ensemble des propriétés de contexte.

image

Vous pouvez retrouver l’ensemble du code ici : WebTestPlugin - Ignorer les urls externe lors des test web Visual Studio

Et vous, vous utilisez les outils de test Visual Studio ? Si oui, utilisez-vous des plugins ?

Posted: mercredi 4 novembre 2009 11:30 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2010 : Déploiement de nouvelles technologies – Retour d’expérience par l’informatique de Microsoft par Blog Technique de Romelard Fabrice le il y a 1 heure et 17 minutes

- TechDays Paris 2010 : Plan de migration vers SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 5 heures et 0 minutes

- TechDays Paris 2010 : La pleinière du second jour par Blog Technique de Romelard Fabrice le il y a 6 heures et 5 minutes

- Visual Studio 2010 and .NET Framework 4 Release Candidate now available par Matthieu MEZIL le il y a 9 heures et 10 minutes

- Création d’une base de donnée sous SQL Azure par Le Blog (Vert) d'Arnaud JUND le il y a 10 heures et 7 minutes

- TechDays Paris 2010 : Les Services d’applications dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 20 heures et 6 minutes

- TechDays Paris 2010 : La GED et SharePoint 2010 par Blog Technique de Romelard Fabrice le 02-08-2010, 16:54

- TechDays Paris 2010 : SharePoint 2010 et Les réseaux sociaux par Blog Technique de Romelard Fabrice le 02-08-2010, 15:40

- TechDays Paris 2010 : SharePoint 2010 – Description et nouveautés par Blog Technique de Romelard Fabrice le 02-08-2010, 14:33

- TechDays Paris 2010 : Pleinière Lundi par Blog Technique de Romelard Fabrice le 02-08-2010, 14:30