Introducción
(Interior, día. El escenario es una oficina con amplios
ventanales, pero donde siempre está encendida la luz eléctrica. Para que luego
digan que lo del cambio horario sirve para ahorrar energía)
(Antonio está enfrascado en revisar una documentación cuando
recuerda que hace ya tiempo que no ha mirado el blog qatecnico y se dice …qué demonio,
le voy a dar un ojo)
(Antonio) Vamos a ver, última entrada ¡Junio de 2017!.
Caray, esto lo tenemos dejadillo, al menos nadie ha entrado para ponernos
publicidad de Viagra o inversiones en fondos de banca…¡creo que ya toca
actualizarlo!)
Y así amigos llegamos a esta nueva entrada : Revista de
actualidad Septiembre de 2018!
Recientemente, Apache ha liberado la última versión de
JMeter, la 5.0.
En las características de la release indica que se han resuelto
algunos problemas relacionados con la implementación de los HTTP Request Samplers,
que es la base de la generación de carga en la herramienta
- Multipart/form-data requests: ahora se pueden usar con peticiones PUT, DELETE … (previamente sólo para POST)
- Se puede enviar un JSON Body con un fichero adjunto
- Se pueden usar conjuntamente la pestaña de Parametros y la de Body (al contrario que antes en la que no podían coexistir)
- Se ha añadido la inclusión automática a los grupos de threads en pruebas distribuidas de la IP y puerto del agente remoto. Asi podemos distinguir de dónde viene la carga y se suman adecuadamente todos los threads usados para dar el total de la prueba
- También se ha actualizado las APIS usada por HTTP Components y se eliminan dependencias de APIs obsoletas.
- También y esto es muy interesante, se ha añadido en los flujos de control la capacidad de desglosar el comportamiento respecto del thread y del total de la prueba
Manejo y usabilidad
Desde el punto de vista de la interfaz es prácticamente
idéntico a las previas (3.X y 4) ,con el interfaz “darcula” por defecto que al
menos para mí es más relajante para la vista, recuperando los terminales
Unix , ya que para el ojo es menos cansado un fondo oscuro y las letras en blanco reluciente.
Unix , ya que para el ojo es menos cansado un fondo oscuro y las letras en blanco reluciente.
También a la hora de realizar las grabaciones, se ha
mejorado añadiendo una “ventana flotante” con la que indicar dónde grabar
Esto agiliza la creación de controladores de transacción
para identificar los pasos de navegación del caso de prueba.
Otra mejora en la usabilidad en el listener de “Ver Árbol de
Resultados” , es la diferenciación con el uso de pestañas específicas entre las
cabeceras y cuerpo de petición y respuesta
Como el total de los cambios, correcciones y demás relativos
a la herramienta es bastante extenso, os remitimos a la página de Apache
que refleja todos estos http://jmeter.apache.org/changes.html
Plugins
Desde el punto de vista de la recopilación y análisis de información,
se han incluido algunos plugins bastante interesantes. Vamos a describirlos
Directory Listing Config
Este plugin permite generar un listado de carpetas y ficheros e ir actualizándolos en variables. Es útil para los casos de prueba que requieran del envio de ficheros .
Las principales características
- "Use
full path" – Si esta casilla no está seleccionada, se introducirá
solo el path relativo de la ruta origen a la variable
- "Random
order" – La lista de paths será accedida aleatoriamente
- "Recursive
listing" – Accederá a las subcarpetas dentro de la ruta origen
- "Rewind
on end of list" - Vuelve a recorrer
toda la lista de ficheros y carpetas una vez llegue al final
- "Re-read
directory on the end of list" – Vuelve a cargar la lista en cada
iteración: esto es útil si se va actualizando el contenido de las carpetas
- "Independent list per thread" – Se indica si cada thread
tendrá su propia lista de paths o si se compartirá entre todos.
Plugin Synthesis Report
Este plugin mezcla las capacidades de los informes resumen estándar y agregado ,junto con opciones para señalar la presentación de qué llamadas o transacciones se quieren mostrar
Este informe permite mostrar las estadísticas más usadas en
cuanto a número de muestras , tiempos de respuesta y valores estadísticos asociados
- Samples
- Average
- Min
- Max
- 90%
- Line
- Std.
Dev
- Error %
- Throughout
- KB/sec
- Avg.Bytes
Disponemos además de la capacidad de
seleccionar mediante expresiones regulares qué peticiones,identificadas por URL
o nombre de transacción se quieren mostrar en esta vista de informe
Como podemos ver, en la etiqueta podemos incluir una
expresión regular para que sólo muestre las
peticiones o transacciones cuya etiqueta empiecen por “P” y un dígito.
Page Data Extractor
Este plugin puede resultar muy interesante de cara a obtener resultados de monitorización o seguimiento de una aplicación web sobre la que estemos haciendo una prueba.
Imaginemos que estamos realizando una prueba de carga sobre
una página en la que realizamos una consulta sobre diversos criterios, como
fecha, identificador de cliente…que estén parametrizados o tipificados de algún
modo
Si en la página, cada vez que hacemos la consulta, aparece
un mensaje o texto con el número de registros, podemos establecer una relación
entre el criterio de consulta, el tamaño de la respuesta (el número de
registros en este caso) y con el tiempo de respuesta obtenido por la
transacción de búsqueda como información significativa del comportamiento de la
aplicación.
Para obtener ese tipo de métrica podemos o bien, mediante
expresiones regulares sobre los resultados de las peticiones extraer dicho
número y luego, volcarlo a un fichero junto con el tiempo de la prueba, para
desarrollar un gráfico…
Mucho trabajo, ¿no? . Para solventarlo podemos usar el
plugin “Page Data Extractor”(categoría “Listeners” , el cual puede actuar de la
misma manera , seleccionando la expresión regular adecuada y representarlo
gráficamente , salvando el resultado a un fichero de resultados estándar de JMeter.
Por ejemplo, al hacer una búsqueda en Google podríamos usar
las siguientes expresiones regulares para obtener
- Numero de páginas por el criterio de búsqueda
- Tiempo de respuesta de la búsqueda de Google
Se puede incluso desde el modo de línea de comandos generar
un XML sobre el que acceder y consultar el estado sin necesidad de tener que
acceder al fichero de resultados
jmeter -n -Jjmeter.save.saveservice.response_data=true -t PaginaEjemplo.jmx
-l out.jtl
|
SSHMon Samples Collector
Este plugin permite realizar conexiones SSH contra una
máquina que use dicho protocolo y ejecutar comandos remotos, ya sean de
monitorización o para realizar alguna comprobación (número de ficheros creados
, usuarios..etc.)
El modo de uso es sencillo , pero evidentemente tiene
algunos requisitos previos
- La máquina desde la que se ejecute tiene que tener acceso por protocolo SSH a la máquina objetivo (IP y puerto)
- Se requiere de un usuario y clave para iniciar sesión
- Si la conexión requiere de un certificado, disponer del mismo
- Los comandos o sentencias ejecutados deben devolver un valor numérico representable, sin texto o caracteres que no sean numéricos (dígito o . para decimales)
La configuración del plugin es la siguiente
- Label es el identificador del valor capturado por el comando a ejecutar
- Host es un campo parametrizable con la IP o nombre de la máquina objetivo de conexión
- Port: El puerto de conexión
- Username (autoexplicativo)
- Private Key (PEM) : El certificado a usar
- Password (premio para el que lo adivine)
- Command: La sentencia a ejecutar con las restricciones comentadas y adaptadas evidentemente a la plataforma y versión del sistema operativo objeto e la conexión
Bueno, creo esto da bastante juego. Lo que no me da más
juego es el tiempo, pero espero que os sea de utilidad.
Para cuando van a abandonar la gestión por hilos y funcionar utilizando aync io como gatling o k6?
ResponderEliminarUn saludo
Hola
ResponderEliminarPues hasta ahí no llegamos, pero desde luego lo que viene siendo la capacidad de mostrar información legible y usar varios inyectores supera a Gatling ampliamente. De todos modos, esto no deberia ser una competición , entendemos que la capacidad de gestionar por código todos y cada uno de los objetos de Gatling (o Pycharm y similares) da una potencia en la gestión de pruebas muy elevada..aunque también requeire de perfiles enfocados casi más a Desarrollo que a prueba "pura y dura"
Nos alegra que comentes en este blog y por supuesto, estamos abiertos a todo tipo de aportaciones y opiniones.
Saludos y gracias!
Dejaos de juguetitos y probad la primera división :-p
ResponderEliminar