Pruebas Unitarias con JMeter

1. Instalaciones y dependencias

  • Java: Para poder ejecutar JMeter es necesario tener Java instalado, puede descargarlo e instalarlo desde aquí.
  • JMeter: Descarga JMeter desde aquí.
  • SoapUI: Descarga e instala SoapUI desde aquí.
  • WSDL: Es necesario tener a la mano el archivo WDSL de cada uno de los servicios que se desea probar.

2. Obtener las tramas iniciales

  1. Para obtener las tramas del servicio y hacer las pruebas cree un nuevo proyecto SOAP hacuendo click en "File" y luego en "New SOAP Project".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. En la nueva ventana digite el nombre del proyecto y luego pegue la URL del WSDL si lo tiene en internet o la dirección del archivo si lo tiene descargado en su computador, luego haga click en "Ok".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  3. Si es necesario realizar una autentificación para acceder al servicio, se le pedirán sus datos de inicio de sesión, tras digitar su usuario y contraseña, haga click en "Ok".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  4. Encontrará al final de la lista de la izquierda el nuevo proyecto que acaba de crear, haga click en "+" hasta poder ver "Request" y haga doble click en él.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  5. Se abrirá una ventana con la trama de la consulta, allí podrá realizar las pruebas independientes que desee cambiando los "?" por los datos de la consulta y haciendo clic en el botón de ejecutar.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  6. Repita los pasos anteriores para obtener la trama de cada uno de los servicios que desee probar, si lo desea es recomendable cambiar los nombres de los proyectos para poder distinguir los servicios entre sí.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

3. Crear y configurar el proyecto

1. Grupo de usuarios

  1. Abra la aplicación JMeter y haga click izquierdo en "Test Plan", lick en "Add", "Threads (Users)" y "Thread Group"

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. En este thread group se indica la cantidad de usuarios o de veces que se probará el sistema, ese valor se digita en "Number of Threads (Users)", cambie ese valor acorde a la longitud del archivo de entrada o la cantidad de casos que desea probar.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

2. Definir variables de configuración

  1. Haga click izquierdo en el thread group, click en "Add", "Config Element" y "User Defined Variables"

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Haga clic en el botón "Add" para ir agregando variables a la lista, se recomienda definir variables como nombre de usuario, contraseña y la ubicación del archivo de entrada o de salida.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

3. Administrar autorización de HTTP

  1. Nuevamente haga click izquierdo en "Thread Group", click en "Add", "Config Element" y "HTTP Autorization Manager".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Haga click en "Add" para agregar una primera fila a la lista y luego ingrese la base de la URL donde se encuentra el WSDL, digite ${username} como nombre de usuario y ${password} como contraseña ya que son las variables para tal fin que definimos en el punto 4.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

4. Administrar encabezados HTTP

  1. Haga click izquierdo en "Thread Group", click en "Add", "Config Element" y "HTTP Header Manager".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Haga click en "Add" dos veces y digite los siguientes datos en la tabla, si el servicio necesita que las consultas tengan algún encabezado adicional, agréguelo a la lista.

    Name Value
    Content-Type text/xml; charset=utf-8
    SOAPAction http://sap.com/xi/WebService/soap1.1
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

5. Configurar archivo de entrada

  1. Haga click izquierdo en "Thread Group", click en "Add", "Config Element" y "CSV Data Set Config".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Llene los campos resaltados en rojo de la siguiente manera: en "Filename" digite ${inputPath} que es la variable que se definió en el punto 4. para que indicara la ubicación del archivo con los datos de entrada, en "File encoding" seleccione "UTF-8", en "Variable Names" ingrese los nombres de las columnas de los datos que contiene el archivo, los demás campos déjelos tal cual como se muestra en la imagen.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

4. Agregar los servicios

  1. Haga click izquierdo en "Thread Group", click en "Add", "Sampler" y "HTTP Request".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Regrese por un momento a SoapUI y copie la URL (marcada como 1 en la imagen) y la consulta (marcada como 2 en la imagen).

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  3. Digite el nombre del servicio en "Name", ingrese "http" en el campo "Protocol", seleccione el tipo de consulta según lo definido en el servicio (en este caso es "POST"), en "Path" pegue la URL que estaba marcada con 1 en el punto anterior y en "Body Data" pegue el contenido de la consulta que estaba marcada como 2 en el punto anterior.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  4. Reemplace los "?" con las variables correspondientes definidas en el punto 5 de la sección anterior de la misma forma como se muestra en la imagen.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  5. Repita el proceso de esta sección para cada uno de los servicios que desee agregar al proyecto.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

5. Agregar las verificaciones

Las verificaciones se pueden agregar a un solo servicio o a todos (agregándola directamente al Thread Group), las principales se muestran a continuación:

1. Verificaciones de tiempo

En la lista de requisitos de todos los servicios, se pide que la consulta se realice en menos de 4 segundos, por lo que agregaremos una verificación de tiempo general a todos los servicios.

  1. Haga click izquierdo en "Thread Group", click en "Assertions" y seleccione "Duration Assertion".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. En el campo "Duration in milliseconds" ingrese el número de milisegundos máximo que debe tardar cada solicitud, como en este caso son 4 segundos indicaremos 4000 milisegundos.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

2. Verificaciones de respuesta

Estas verificaciones revisarán si la respuesta a la solicitud contiene o no un texto en específico, en este caso verificaremos que el valor total que retorna uno de los servicios coincida con el indicado en el archivo de entrada.

  1. Haga click izquierdo en el servicio, click en "Add", "Assertions" y seleccione "Response Assertion".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Seleccione la opción "Contains", haga click en add e ingrese el texto que desea verificar que contiene la respuesta, en este caso ingresaremos als etiquetas de la posición donde se encuentra el valor junto con ${pagado} para verificar que contiene el valor indicado en el archivo de entrada.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  3. Si lo desea puede cambiar el nombre de la verificación para poder diferenciar fácilmente las verificaciones entre sí, tambiene puede agregar en la parte inferior el mensaje de error que se mostrará cuando una prueba no cumpla esta verificación.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Repita los pasos anteriores con cada una de las verificaciones que desee agregar.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

6. Reportes y resultados

1. Árbol de resultados

Este reporte muestra cada una de las pruebas realizadas, junto con sus verificaciones, las consultas, resultados, encabezados y en general todos los datos manejados durante las pruebas.

  1. Haga click izquierdo sobre "Thread Group", click en "Listener" y seleccione "View Results Tree".

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. Ingrese en "Filename" la localización del archivo para los resultados del árbol.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

2. Reporte en resumen

Este reporte muestra un resumen general de todas las pruebas agrupado por servicios, mostrará el porcentaje de pruebas que tuvieron éxito o error, la velocidad a la que se realizaron, cuantos bites se recibieron y en general las métricas necesarias para comprender grosso modo el desempeño de las pruebas.

  1. Haga click izquierdo sobre "Thread Group", click en "Listener" y seleccione "Summary Report".

  2. Ingrese en "Filename" la localización del archivo para el resultado del reporte.

3. Reporte de verificaciones

Este reporte incluye exclusivamente los datos relacionados con las verificaciones realizadas a cada una de las pruebas incluyendo si estas las pasaron o no.

  1. Haga click izquierdo sobre "Thread Group", click en "Listener" y seleccione "Assertion Report".

  2. Ingrese en "Filename" la localización del archivo para el resultado de las verificaciones.