Pruebas de Carga con Team System (II): Pre y Post request Plugins

La mayoría de las veces, cuando necesitamos diseñar y crear nuestros webtest’s para una determinada prueba, el webtest que se genera desde el recorder de Team System es suficiente, y salvo pequeñas modificaciones, podemos utilizarlo directamente en nuestro test de carga. Hay ocasiones, sin embargo, en las que debemos introducir modificaciones más importantes y entonces necesitamos codificar nuestro webtest, de manera que perdemos un poco de la comodidad que resulta manejar nuestros webtest en formato visual.

En este POST os hablaré de los pre y post request plugins de los webtest, que nos van a permitir mantener nuestros webtest en formato visual, siendo estos plugins los que realicen de manera automática los cambios que necesitemos. Como su nombre indica, los pre y post request plugins incluyen acciones a realizar antes y después del envío de un request.

Imaginemos que nuestro webtest necesita enviar una cookie en concreto al servidor como parte de la cabecera del request. Esta cookie es dependiente del test en que nos encontremos y necesitamos controlar su inclusión en dicha cabecera. Desde la parte visual de configuración de un webtest no tenemos la posibilidad de modificar la inclusión de este tipo de parámetros, y siempre se mantendrá como parte del request aquello que el recorder haya grabado durante la creación del webtest. Si queremos modificar el valor de la cookie necesitamos pasar nuestro webtest a código para poder modificarlo:

 

Namespace TestProject1

    Public Class WebTest1Coded

        Inherits ThreadedWebTest       

        Public Sub New()

            MyBase.New

            Me.Context.Add(“WebServer1”, “http://www.myserver.com”)

        End Sub

       

        Public Overrides Sub Run()

            Dim request1 As WebTestRequest = New WebTestRequest((Me.Context(“WebServer1”).ToString + “/”))

            request1.Timeout = 0

 

Dim CookieC As CookieCollection = New CookieCollection()

Dim c1 As Cookie = New Cookie(“OldCustomer”, “TRUE”)

c1.Expired = False

CookieC.Add(c1)

request1.cookie.add(CookieC)

 

 

            MyBase.Send(request1)

            request1 = Nothing

CookieC  = Nothing

c1  = Nothing

 

        End Sub

    End Class

End Namespace

Vemos resaltadas las líneas necesarias para modificar el código de nuestro webtest e incluir la gestión de una cookie particular. Si además tenemos varios request que utilizan esta cookie, nos veremos obligados a codificar todos ellos y utilizar las mismas líneas de código. Una solución es utilizar los pre request plugins que nos van a permitir por un lado reutilizar el código y por otro mantener los webtest originales sin necesidad de codificación.

En el siguiente cuadro se muestra el código de un ejemplo de plugin que será llamado antes del envío de un request que lo incluya como referencia. Los detalles de cómo incluirlo como referencia en nuestro webtest y de cómo crear la clase que contendrá este plugin pueden consultarse en este link:

Imports System

Imports Microsoft.VisualStudio.TestTools.WebTesting

Imports System.Net

 

Namespace WebTestPluginNamespace

    Public MustInherit Class SampleWebTestPlugin

        Inherits WebTestRequestPlugin

        Public Sub PreWebTest(ByVal sender As Object, ByVal e As PreWebTestEventArgs)

 

            Dim CookieC As CookieCollection = New CookieCollection()

            Dim c1 As Cookie = New Cookie(“OldCustomer”, “TRUE”)

            c1.Expired = False

            CookieC.Add(c1) 

e.request.cookie.add(CookieC)

 

            CookieC = Nothing

            c1 = Nothing

        End Sub

    End Class

End Namespace

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *