Revista Blog

Configurar jMeter para usarlo con Django y CSRF

Por Mika Hämäläinen

Hacer pruebas de carga a una aplicación desarrollada en Django con jMeter puede ser problemático ya que Django requiere un token CSRF (Cross-Site Request Forgery) en las peticiones POST (a no ser que lo hayas desactivado, por su puesto). Con este tutorial, aprenderás a realizar pruebas de carga con Django y jMeter utilizando el archivo jMeter que te he preparado. 🤓

1) Descarga el archivo jMeter para Django.⬇️

Después de descargar el archivo, hay algunas cosas que tienes que hacer.

Configurar jMeter para usarlo con Django y CSRF

2) Introduce el URL de la applicación que vas a probar con jMeter en Test Plan -> Thread Group -> HTTP Request Defaults -> Server Name or IP

Configurar jMeter para usarlo con Django y CSRF

3) Abre el primer HTTP Request y cambia la ruta (path) a la vista (view) en que has utilizado el tag de plantilla {% csrf_token %}. O sea, la página en que tienes ningún formulario que se envía mediante POST. Si no tienes un formulario de ese tipo y todas las peticiones POST se realizan mediante JavaScript, puedes añadir el tag {% csrf_token %} en cualquier lugar de la plantilla. Solamente creará un campo invisible con el token CSRF para que el Regular Expression Extractor lo pueda encontrar para realizar las pruebas POST con jMeter.

Configurar jMeter para usarlo con Django y CSRF

4) Ahora, abre la segunda HTTP Request. Esto es dónde vamos a configurar la prueba de la petición POST. Introduce la ruta al URL donde quieras enviar la petición POST. También hay que especificar los parámetros POST. Como lo puedes ver, el token CSRF ya está definido como un parámetro aquí desde el primer HTTP Request.

Configurar jMeter para usarlo con Django y CSRF

5) Cuando haces clic en el botón ejecutar (la flecha verde), verás los resultados en View Results in Table y View Results Tree. Si ocurren errores con el token CSRF, puede que tengas que ajustar la expresión regular en el primer HTTP Request. Es posible que el output del tag de plantilla {% csrf_token %} es diferente dependiendo de la versión de Django.

Eso fue todo.☺️ Cuado parece que todo está funcionando bien, puedes añadir más usuarios a la simulación en Test Plan -> Thread Group cambiando el parámetro Number of Threads.


Volver a la Portada de Logo Paperblog