WebTest : Mais où est passé le reste de mon code HTML ?

Est-ce qu’il vous est déjà arrivé, lors de l’exécution d’un test web, de ne pas voir la totalité du code HTML normalement retourné par la page, celle-ci étant carrément coupée arbitrairement au milieu d’une balise ?

Oui ? Et bien c’est normal ! Comme on peut s’en douter, il existe une taille maximum de code récupéré et stocké pour la réponse (et la requête aussi, d’ailleurs). Cela pose deux problèmes :

-          Le premier est qu’on ne peut pas consulter la totalité du code qu’aurait récupérer l’utilisateur.

-          Le deuxième fait qu’une règle d’extraction destinée à récupérer du texte située dans la partie tronquée ne le trouvera pas!

Plutôt gênant n’est-ce pas ? Et bien : oui et non.

Pour le « Oui » je viens de dire pourquoi. Pour le « Non » : tout simplement parce que la limite par défaut est de 1 500 000 caractères, soit environ 1.5Mo. On est donc le plus généralement à l’abri car il est difficile d’atteindre une telle quantité de caractères. Ceci dit, si le code est généré ou s’il n’est pas super propre et un peu trop verbeux, on peut se retrouver dans ce cas. Et si cela vous arrive, j’ai la solution : le plugin de test web.

NB : J’ai déjà abordé la création d’un test web dans ce post, je ne reviendrais donc pas sur les bases.

Lorsqu’on créé un plugin de test, on peut surcharger la méthode « PreRequest ». Cette méthode sera exécutée avant chacune des requêtes du test web. On retrouve dans ses arguments un EventArgs de type PreRequestEventArgs qui contient une propriété « WebTest » dans laquelle on retrouve la propriété « ResponseBodyCaptureLimit » qui correspond la quantité maximum de caractères récupérés lors de l’éxécution d’une requête du test, c'est-à-dire exactement ce dont nous avons besoin !

Rien de plus simple de modifier ce comportement, vous l’aurez compris, et voici un exemple « d’implémentation » :

public class HtmlSizeLimitWebTestPlugin:WebTestPlugin

{

    public int CaptureLimit { get; set; }

 

    public override void PreRequest(object sender, PreRequestEventArgs e)

    {

        e.WebTest.ResponseBodyCaptureLimit = CaptureLimit;

    }

}

 

Notez l’utilisation de la propriété, que l’on pourra automatiquement éditer dans Visual Studio via un petit « Clic Droit > Propriétés » sur le plugin.

 Ici je me place dans le cadre d’un plugin de test donc chaque requête se verra affectée des mêmes paramètres. On peut bien entendu effectuer la même opération dans n’importe quel endroit à partir duquel on a accès à l’objet « WebTest », comme par exemple dans un WebTestRequestPlugin. On pourra alors modifier la valeur de la propriété pour chaque « instance » du plugin, et donc pour chaque requête ! J

.Dispose() ;

Publié vendredi 1 août 2008 08:30 par Etienne Margraff
Classé sous ,
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