lunes, 3 de octubre de 2011

JMeter (II). Casos de Prueba

Continuando con la entrada anterior, seguimos describiendo el proceso de preparación de un caso de prueba.Ahora con la parametrización de un script.
 Enlace
Cada petición que se incluye en el script, puede ser modificada para:
· Cambiar los parámetros con los que hace la invocación al servidor
· Parametrizar las peticiones de manera que use un fichero para cada ejecución
· Especificar un servidor Proxy para acceder a direcciones externas
· Indicar timeout de petición

El cambio de parámetros dependerá de si están incluidos en la URL de invocación
Invoación de parámetros en una peticion HTTP



O, si se capturan en la sección correspondiente 
Invocación de parámetros en captura




En este caso, el parámetro mediador_Aceptacion.aceptacion.nif, tomará el valor definido en la variable ${NIF}. Esta variable puede estar definida como un Elemento de configuración: Variables definidas del plan de prueba o bien como una variable de un CSV Dataset

Configuración de variables de usuario en JMeter por definición explícita
Ilustración 1. Configuración variables definidas por el usuario

Configuración de parámetros por fichero de datos CSV
Ilustración 2. Configuración fichero CSV Dataset




La invocación a las variables se realiza con el formato ${NOMBREVARIABLE}. Las variables tienen ámbito global dentro del plan de pruebas, por lo que pueden ser referenciadas a cualquier nivel dentro del mismo. Habitualmente, para pruebas de carga, se usan variables definidas dentro de un fichero 


Definición de variables basándones en un fichero de datos separado por comas
Ilustración 3. Ventana de configuracion de fichero de parámetros (CSV DATASET)
Nombre descriptivo del fichero
Campo de texto libre
Ruta al fichero CSV(separado por carácter)
Variables (una por cada columna)
Caracter delimitador entre campos
Permite datos entrecomillados
Reinicia al llegar al final del fichero





Las peticiones admiten también el uso de funciones para el paso de parámetros. JMeter proporciona una ayuda –aunque no muy extensa- sobre el uso de las funciones. Para ello, en las opciones del menú gráfico, seleccionamos el elemento “Diálogo de Ayuda de Función”

Opción de menú en JMeter para invocar funciones
Ilustración 4. Opción de menú funciones



Seleccionando esta opción, podemos insertar, dentro del elemento muestreador o declaración de variables esta invocación a función.
Por ejemplo, podemos crear una variable con la fecha formateada para usarla en diferentes operativas dentro de la lógica de la navegación –como un parámetro de envio de una petición HTTP – o bien dentro del manejo del propio script –un fichero de resultados que contenga ese campo de tipo fecha en el nombre o en alguno de los registros que capture-
Ayuda de función.Menu de JMeter
Ilustración 5.Diálogo de Ayuda de función


Una declaración de función para generar una fecha en formato año/mes/dia y que la volcara a una variable FECHA, la crearíamos así
${__time(YMD,FECHA)}

Podemos invocar a la llamada a dicha función dentro de los parámetros de una petición HTTP, sustituyendo el valor que tuviera capturado durante la grabación, por el nombre de la función, marcando la casilla de “¿Codificar?” del parámetro
 
Ventana de parámetros de función,aquí podemos añadir o eliminar qué variables usará la función
Ilustración 6.Invocación a función

Esta opción haría que en cada invocación, se ejecutara la función dando la fecha en el momento. En el caso de que se utilizara ${FECHA} en la invocación tendría el valor del momento en el que se invocara explícitamente a la función.

En el caso de la función de tiempo, los valores por defecto que proporciona JMeter son el tiempo en milisegundos dede el 1 de Enero de 1970. Para cambiar el formato que utiliza la función es necesario modificar el fichero que está en la ruta de instalación del JMeter->directorio “bin” y que responde por jmeter.properties
En concreto la sección
# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
#jmeter.save.saveservice.timestamp_format=ms
Por esta opción
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSSS

Se puede especificar que las peticiones http se redirijan a través de un Proxy específico
 
Opcion de muestreador HTTP para indicar el uso de un proxy de navegación
Ilustración 7. Configuración red de muestreador HTTP


Se configuran los parámetros de nombre o servidor IP del Proxy ,el puerto ,así como los datos de usuario y clave necesarios para validarse en dicho Proxy (si aplica)
Otro campo interesante es es el de Embebbed URLs. En este apartado, podemos especificar el dominio o “patrón” de las URL desde las que se quiere mantener comunicación ,ya sea de envío o recepción.
Otros elementos útiles para la correcta ejecución funcional del script o grupo de hilos, son:

· Gestor de autorización http: Permite el envio de pares usuario/contraseña a una URL de autenticación
· Gestor de cabecera http: Permite definir la cabecera común a todas las peticiones http, salvo que se defina una cabecera específica para alguna en particular
· Gestor de Cookies http: Permite que JMeter gestione de manera automática las cookies que envia el servidor para la identificación de sesión
· Gestor de caché http. Simula el comportamiento de la caché de navegador.

Continuará…

2 comentarios:

  1. Buenas tardes quisiera saber como resolver un error que me da 401 de autenticacion Unauthorized

    ResponderEliminar
    Respuestas
    1. Es complejo identificar la causa del error que estás recibiendo, pero estos problemas suelen estar asociados a:
      1) Existen identificadores de sesión que cambian en cada ejecución. Estos identificadores deben ser capturados previamente (por ejemplo jssesion id) y utilizados dinámicamente.
      2) Solo se permite una sesión por usuario, y en nuestra prueba varios hilos utilizan el mismo usuario.
      3) Problemas con el uso de certificados cliente SSL (en caso de que tú aplicación los utilice).

      Para tratar de acotar el problema, una opción es realizar dos grabaciones de los mismos pasos y acciones y comparar los parámetros enviados en cada una de ellas para tratar de identificar las diferencias.

      Esperamos que te sirva de ayuda.

      Eliminar