Bienvenido

Estos artículos estarán dedicados a dar consejos y ejemplos sobre la creación de scripts.


viernes, 8 de enero de 2016

Expresiones regulares en Jmeter

Expresiones Regulares en Jmeter

Una forma de extrae que es lo que nuestra api esta respondiendo es usando una expresión regular.
Siempre se crea después de la llamada ya que es un post-procesador.



Nombre: nombre que le vamos a dar para identificar nuestra exp reg.
Aplicar a : donde vamos a usar nuestra expresión regular, en una variable, en la muestra principal, etc. En la imagen vamos a decirle que va a usar la exp reg en toda la respuesta.
Campo de respuesta a comprobar:de donde vamos a extraer el valor que buscamos. En nuestro caso vamos a extraer del cuerpo.
Nombre de referencia: Nombre de nuestra nueva variable donde vamos a asignar lo que se extraiga.
Expresión regular: nuestra expresión regular.
Plantilla: se debe poner entre $n$ los numero de plantillas, se ponen tantos como expresiones regulares hayamos puesto. Ej: response:(.+?),”(.+?)”  $1$$2$, y luego para usar cada plantilla es Nombre_de_referencia_g1. O ponemos 0(cero) si vamos a querer todo en una sola variable. 
Coincidencia : que coincidencia vamos a querer, si lo dejamos vacío asigna la primera que encuentra y el -1 son todas las coincidencias que encuentre. 
Valor por defecto: en caso de no encontrar nada que valor vamos a querer que tenga por defecto.


*Una buena forma de saber si nuestra expresión regular funciona es probarla por ejemplo en rubular.com. 
O también podemos probarla en Jmeter. Solo tenemos que correr nuestras llamadas y elegir Testeador de RegExp en el árbol de resultados


En expresión regular, ponemos la que creamos y luego con el botón test vemos si extrae lo que realmente queremos o no. 
Si lo encuentra nos muestra como serian nuestras plantillas, el match 1,0 seria el variable_g0 y el match 1,1 seria el variable_g1.


Después de tener guardada nuestra expresión regular, podemos usarla por ejemplo en un assert.
En el ejemplo de la imagen vamos a usar nuestra variable creada con la exp reg poniendo en el assert como "aplicar a " = variable jmeter. 





Si pusimos coincidencia -1 y queremos saber cuantas coincidencias encontro solo tenemos que llamar a la variable: "Nombre_de_referencia_matchNr"



Condicional If en Jmeter






Condicional IF en Jmeter


Al probar apis es probable que no solo queramos ver si responde OK o no, sino que también queremos si lo que devuelve esta bien o no. Para esto podemos usar un condicional como el IF.

Al crear un IF debemos tener en cuenta que vamos a querer validar. Para eso usamos variables. Si vamos a querer validar el response entonces vamos a necesitar hacer una llamada primero y extraerlo.
Vamos a ver un ejemplo extrayendo solo la primer etiqueta dentro de nuestro response con una expresión regular.
Crear extractor de expresion regular
SIEMPRE dentro de un IF se debe volver a hacer la llamada, sino el IF no funcionara. (Ver Imagen).

En la imagen se puede ver la declaración del IF, es igual que un IF en código.  Y dentro una llamada http.
Los mas comunes:
== igual a
!= diferente de
En la imagen vemos que en la comparación usamos la variable que creamos con la expresión regular.
Siempre es “${variable}”== ……
Si corremos este script sin asserts vemos que nos dará este tipo de respuesta:

Esto indica que entro a nuestro IF, sino hubiera mostrado solo una petición HTTP en el resultado.
Como se vio en las imágenes antes de cada llamada tenemos un controlador simple, esto lo hacemos porque al tener un IF va a querer entrar directo al IF antes que a las llamadas anteriores, el controlador simple lo único que hace es separar nuestro script en bloques, y se ejecutara en el orden de los bloques. Así primero se ejecutara nuestra llamada para extraer datos y luego nuestro if.