Jmeter.
Simulación de distintos usuarios. Función
__counter y
users.xml
0. Índice de contenidos.
- 1. Introducción.
- 1. Parametrización mediante la función de Counter.
- 2. Parametrización mediante archivo externo users.xml.
1.
Introducción.
En este
tutorial veremos como tratar un aspecto básico del uso de la
herramienta JMeter, el simular distintos usuarios para cada
hilo que ejecute nuestro script de pruebas de carga.
Como ya
sabemos, JMeter es una herramienta para realizar pruebas de
carga sobre nuestras aplicaciones, de manera que simulamos un
número
de hilos que se conectarán a nuestra aplicación y
ejecutarán de
manera independiente, cada uno de ellos, el script de ejecución
para
nuestra aplicación. Dichos hilos pueden ser considerados como
distintos usuarios que se conectan a nuestra aplicación, de
manera
que el parámetro que asigna el valor o id, de cada usuario,
debemos
de parametrizarlo para que simule distintos usuarios y no siempre el
mismo usuario, con un valor estático de id de los mismos.
Por ejemplo, si
el usuario que se conecta a nuestra aplicación tiene el id
“1”,
que la siguiente vez que JMeter evalúe dicho parámetro le
asigne el
valor “2”.
Tenemos dos
maneras de parametrizar dicho valor, una mediante el uso de una
función de JMeter que nos proporciona un contador
autoincremental, y
otra con el uso de un archivo xml de JMeter,
en el cual definimos los atributos a parametrizar y sus valores para
cada hilo.
2.
Parametrización mediante la función de Counter.
La primera
manera de parametrizar el valor del id de nuestro usuario, es hacer
uso de la función de JMeter, Counter. Dicha
función creará
un contador que comenzará en el valor entero “1” e
irá
incrementándose de manera automática de 1 en 1.
Para utilizar
dicha función (y el resto de funciones disponibles), aconsejamos
hacer uso del acceso directo de JMeter para la ayuda de funciones, a
la cual accedemos mediante el acceso de teclado
“Control+f”.
Dicha ayuda será explicada de manera más detallada en
futuros
tutoriales. Una vez desplegada la ayuda de funciones seleccionamos la
función “__counter”.
A continuación
procedemos a configurar dicha ayuda de la función, para que nos
genere la expresión adecuada para el uso de la misma.:
Como podemos
observar la función tiene 2 propiedades a configurar. La primera
propiedad puede tener 2 valores, TRUE en caso de que queramos un
contador propio por cada usuario, lo cual no es nuestro caso, y FALSE
para indicar que es un contador global, independiente de cada
usuario. La segunda propiedad es para asignar el nombre de una
variable donde JMeter guardará la expresión que
representa dicha
función, es una propiedad opcional.
A continuación
pulsamos en “Generar”, de manera que la ayuda de
función
nos genera la expresión que nos permite hacer uso de dicha
función
de contador.
El siguiente
paso, es seleccionar la petición donde le asignamos el valor a
nuestro usuario, en nuestro caso:
Como podemos
observar al ser un valor estático, cada vez que se realice esta
petición se asignara el mismo usuario a la sesión.
Hacemos uso de
nuestra función para que nos parametrice el valor entero del id
del
usuario, de manera que la primera vez que se realice esta
petición
tendrá el valor “user1”, la segunda
“user2”… y así
sucesivamente:
Como podemos
observar para el uso de funciones o variables en la herramienta
JMeter hacemos uso de la notación ${expresionFunción},
donde
expresionFuncion, es la expresión generada por la ayuda de
función.
3.
Parametrización mediante archivo externo users.xml
La otra manera, y quizá mas
correcta, es parametrizar
el valor de nuestro atributo para los usuarios, mediante el archivo
externo de Jmeter, users.xml
Dicho archivo lo podemos encontrar en
la carpeta “bin”
de nuestra ruta de JMeter. Editamos dicho archivo:
Podemos observar nodos que comienzan
con <thread>
y cierran con </thread>, los cuales hacen referencia a
cada hilo de ejecución. Dichos nodos encierran nodos que
comienzan
con <parameter> y cierran con </parameter>,
dichos nodos representan cada parámetro para cada hilo de
ejecución.
En este caso queremos parametrizar dos atributos para cada usuario,
para ello definimos el nombre de cada atributo mediante la etiqueta <paramname>,
el cual debe coincidir con el nombre del
atributo en la petición, como podemos observar, y su valor
mediante
la etiqueta <paramvalue>.
Así pues definimos un usuario
1 con el valor “user1”
y el valor del atributo que referencia a su password de acceso, con
el valor de “password”; un usuario 2 con el valor de
“user2”
y “password”, y así todos los usuarios que tengamos
que simular.
Para hacer uso de dicho archivo, en
la petición en la
cual asignamos los valores a los usuarios, añadimos el siguiente
componente, en el cual indicamos que dicha petición debe tomar
valores del archivo users.xml:
A continuación modificamos los
valores de nuestra
petición para que ciertos atributos los busque en users.xml.
Para
ello, eliminamos el valor por defecto de nuestro parámetros y
dejamos en blanco dichos valores, de manera que cuando JMeter intente
asignar el valor a dichos parámetros y los encuentre
vacíos, ira
users.xml y los tomará de este.
Como podemos ver, de cualquiera de
estas dos maneras
asignamos de forma dinámica valores a los distintos usuarios que
simulamos en el script de prueba de carga de nuestra herramienta
JMeter.
Esperamos que este tutorial les sea
de ayuda, y
cualquier sugerencia o pregunta agradecemos contacte con nosotros.
bueno
Hola que tal, yo estoy tratando de usar la parametrizacion mediante xml, pero el problema que tengo es que la pagina que estoy testeando no tiene id, entonces a los campos usuario y contraseña no logro identificarlos… estuve mirando tu ejemplo y por lo que parece el jMeter te esta generando unos parametros para username y password… tambien intenté eso pero al grabar no me genera esos parametros sino que genera una variable sin nombre y en su valor estan el usuario y la contraseña. Tenes idea de como solucionar esto??
Muchas gracias por la info que posteaste!! Es muy explicativa
Saludos
Buenas estoy haciendo pruebas con el jmeter pero necesitaria ayuda creo q un plan basico, pero soy nuevo en esto y no entido los resultados por q aveces si otras no.podemo estar en contaacto por skype mi user es pipisoft
gracias
Agileload te ayuda obtener un mejor rendimiento de tus aplicaciones web una alternativa frente a Jmeter.
Realiza pruebas de rendimiento de clase empresarial como:
– Simula carga de usuarios para comprobar el rendimiento
– Ayuda a obtener un mejor rendimiento
– diagnostica el origen del problema
Tambien realiza pruebas de rendimiento sobre el ciclo vital de la aplicación.
– Previene problemas de rendimiento , detecta cuellos de botella .
– Comprueba si la aplicación cumple los requisitos de rendimiento.
-Evita problemas de producción y de prueba de carga.
Ademas de otras funciones si quieres saber mas sobre este maravilloso programa visita su sección de tutoriales
Hola, una consulta, como verifico, en el Jmeter, que en verdad el script logró ingresar al sistema.
Saludos.