Load and stress web testing with Taurus

 In Labs

Introducción

Existen infinidad de herramientas para probar el rendimiento de tu web, cada una de ellas tiene sus pros y sus contras, e independientemente de eso probablemente terminarás eligiendo la que ya conoces y con la que te sientes más cómodo.

En este post hablaremos sobre una herramienta que hemos conocido recientemente. Nos referimos a Taurus.

¿Qué es Taurus?

Supongo que podemos definir Taurus como un framework de tests de rendimiento creado para ayudarte a escribir tus scripts de tests de una manera más fácil que los scripts habituales de JMeter o Selenium. Esto se hace creando un archivo yaml, que puede ser tan simple o tan complejo como desees o necesites. Incluso puede ejecutar scripts JMeter o Selenium existentes, por lo que te puedes imaginar lo potente que pueden llegar a ser tus tests.

Es de código abierto y ha sido desarrollado por los creadores de Blazemeter.

Complemento del navegador

Existe el complemento Blazemeter que está disponible para Chrome y puedes usarlo para registrar tu sesión de navegación. Presiona el botón para comenzar y simplemente navega por tu sitio web para que pueda simular esta sesión en tus tests.

record test

Puedes descargar la sesión como un script Jmeter o Selenium. E incluso como un archivo de configuración de Taurus, por lo que no sería necesario escribir una sola línea de código.

export script

Instalación

En primer lugar, dependiendo de tus recursos y requisitos para los tests, puedes instalar Taurus en tu propia máquina o en un servidor. Existen múltiples métodos pero te mostraremos los dos que consideramos mejores.

Si quieres ir rápido o simplemente no tienes otra máquina a tu disposición, puedes usar la imagen de Docker de Taurus.

Por otro lado, si necesitas realizar tests que exigen recursos o si necesitas ejecutar tests de forma regular, probablemente deberías instalar Taurus en un servidor de tu proveedor de cloud favorito. En este caso, recomendaría usar el paquete de Python en su lugar, ya que probablemente querrás hacer el mejor uso posible de los recursos de tu máquina.

Docker

https://gettaurus.org/docs/Installation/

Como dije anteriormente este sería mi método preferido para la instalación en mi máquina. Probablemente tengas Docker instalado en tu sistema, por lo que solo necesitas ejecutar::

docker pull blazemeter/taurus

Gestor de paquetes de Python

sudo apt-get update

sudo apt-get install python3 default-jre-headless python3-tk python3-pip python3-dev 

  libxml2-dev libxslt-dev zlib1g-dev net-tools

sudo python3 -m pip install bzt

Efectuando los tests

Dependiendo del método de instalación deberás ejecutar la herramienta de línea de comandos o Docker para realizar los tests.

  • bzt my_test.yml
  • docker run --rm -v :/bzt-configs -v :/tmp/artifacts blazemeter/taurus my_test.yml

De todos modos, la parte importante está en el archivo yaml donde reside la declaración del test y la configuración. Un yaml simple podría ser algo así:

execution:

- concurrency: 10
  ramp-up: 1m
  hold-for: 5m
  scenario: quick-test

scenarios:
  quick-test:
    default-address: https://myweb.com
    think-time: 3s
    keepalive: true
    requests:
    - /test.php
    - /anotherpage.php

Esto ejecutará un test durante 5 minutos con 10 usuarios simulados (o threads) que realizarán dos solicitudes con un retraso de 3 segundos entre cada una. Durante el test puedes ver una interfaz de usuario para seguirlo:

report ui

Pero la mejor parte son los informes online. Puedes obtener un informe html interactivo que se subirá a la web de Blazemeter con solo agregar lo siguiente al archivo yaml.

reporting:
- module: blazemeter
  report-name: My test
  test: Taurus  test
  project: My web
  upload-artifacts: false  # upload artifacts when test is finished

Al final de la prueba obtendrás una dirección web y tu informe debería verse así:

online report

Como se mencionó anteriormente, puedes ejecutar scripts JMeter existentes, la sintaxis de configuración sería así.

execution:
- concurrency: 10
  ramp-up: 1m
  hold-for: 5m
  scenario: jmeter sample

scenarios:
 jmeter sample:
    script: tests/jmx/session1.jmx

Por supuesto, puedes ejecutar varios escenarios en la misma prueba, o incluso ejecutarlos en paralelo en varias máquinas. Pero podemos dejar este y quizás otros temas más avanzados para otra publicación.

Conclusión

Taurus es un framework de tests web potente y flexible, y espero que lo hayas podido comprobar en este post. Es difícil pensar en un escenario de tests en el que Taurus no pueda ser útil, puede realizar pruebas web muy complejas pero también puede realizar de forma sencilla las más básicas, incluso puedes usar el complemento de Chrome para obtener el archivo de configuración hecho para ti si no quieres escribir ni una línea de código, si bien la sintaxis del archivo de configuración es fácil e intuitiva de aprender.

Para concluir, si tienes alguna duda sobre este tema o simplemente necesitas de nuestros servicios, visita nuestra web y contáctanos, ¡estaremos encantados de ayudarte!

Recent Posts

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.