Simplifier l’édition des “StringBody” dans les tests web

Tester un service web avec Visual Studio Team Test et ses WebTest est extrêmement simple. Certes, il vaut mieux utiliser Fiddler2 pour enregistrer les scénarios, mais tout se passe bien, les requêtes sont générées correctement, et on peut les rejouer facilement.

Seulement voilà: quand on fait un test un peu évolué, on a rapidement besoin d’utiliser le databinding, ou même simplement de rendre certains paramètres variables. Comme il s’agit de requêtes de services web quasiment aucun paramètres n’est passé en POST ou en GET, tout est dans la requête SOAP. Hors cette requête en question est stockée dans un élément du test qui se nomme “stringbody”. Et c’est là que se situe mon problème… éditer un string body, cela signifie :

  • Sélectionner l’élément dans le test
  • Aller dans ses propriétés
  • Ouvrir “l’éditeur” de string body
  • Editer directement dans l’éditeur, ou copier/coller dans Visual Studio pour avoir un minimum de coloration syntaxique et des barres de défilement… (si, si !)
  • Valider les modifications

Pour ceux qui ne connaissent pas, voici en illustration ce que ça donne :

image

et le fameux éditeur (par défaut tout est sur une ligne, ce qui n’est pas très pratique pour éditer de l’XML) :

image

Quand on a un seul string body, pas de soucis, par contre quand on en a plusieurs, on manque de visibilité globale, et on fait rapidement une erreur ou un oubli.

Quand on voit ça, on se dit qu’il suffit d’éditer le test en mode XML (Clic droit sur le fichier de test > Open With… > Xml Editor). Seulement voilà, le string body dans le fichier XML d’un webtest est encodé dans une chaîne en base 64 :) Ce qui donne à peu prêt ceci :

image

Personnellement, je suis incapable d’éditer ça :)

Et donc ma solution (qui n’est pas révolutionnaire en soi), consiste à écrire un petit outil qui prend en paramètre un fichier .webtest et décode tous les stringbody en quelque chose de lisible. On peut alors librement éditer en mode XML les requêtes SOAP, et reconvertir avec le même outil à nouveau en base 64.

Voici une capture de l’outil:

image

L’idée, c’est que même si on a plusieurs stringbody dans un webtest, on ne fait qu’une seule fois l’opération de conversion, on se retrouve alors avec quelque chose de beaucoup plus lisible, on peut faire de la recherche, du remplacement automatique, etc., etc. :

image

Vous pourrez trouver le projet de l’outil  ici . (Le code est refactorisable, je sais… mais ça fait ce que ça doit faire, c’est déjà bien ;-))

Ca fonctionne avec les .webtest en 2008, je n’ai pas encore testé en 2005.

Je prévois également d’en faire une extension Visual Studio pour que cela soit encore plus simple à utiliser.

J’espère que ça pourra servir, personnellement je ne peux plus m’en passer!

 

.Dispose();

Publié jeudi 22 janvier 2009 09:00 par Etienne Margraff
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


Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01