Blog de Antonio Manuel Muñiz

Desarrollo, Ingeniería y Calidad del Software

Load testing con Tsung

Tsung es una herramienta Open Source para realizar pruebas de carga de varios tipos: HTTP, WebDAV, XMPP (Jabber), PostgreSQL, MySQL y LDAP. Hasta ahora había usado JMeter para definir pruebas de carga sobre aplicaciones web, mediante la repetición controlada de peticiones HTTP más o menos complejas. Realmente lo que me ha sorprendido de Tsung es la variedad de tipos de tests posibles, especialmente las pruebas sobre bases de datos (MySQL y PostgreSQL) y sobre protocolo WebDAV.

Es cierto que la usabilidad de Tsung no está al nivel de JMeter, principalmente porque no tiene interfaz gráfica, pero el resultado en cuanto a interpretación de los reportes de la prueba, no tiene nada que envidiar, incluso diría que supera a JMeter en este aspecto.

Para realizar una prueba con Tsung el procedimiento es el siguiente (para una prueba a un servidor WebDAV, por ejemplo).

En primer lugar debemos instalar Tsung. Existen distrubuciones binarias para Debian, Ubuntu y RedHat, aunque para los amantes de la compilación existe una distribución de código fuente.

Para capturar las peticiones al servidor lanzamos el recorder:

~/Antonio$ tsung -p webdav recorder

Realizamos las peticiones configurando un proxy (localhost:8090, por defecto) en la herramienta que usemos para realizar las peticion (algún cliente WebDAV). Tsung generará un fichero XML que incrustaremos en el fichero de configuración ($HOME/.tsung/tsung.xml), en su sección sessions. En el fichero tsung.xml configuramos también los parámetros de la prueba: número de usuarios (simulados) concurrentes, intervalo entre peticiones, etc. Una caracteristica que llama la atención de Tsung es la posibilidad de configurar cierta incertidumbre en la prueba, por ejemplo, podemos indicar que simule peticiones desde un cliente X con una probabilidad del 80% y desde un cliente Y con un 20%. Incluso podemos definir incertidumbre en la propia petición (en tsung, sesiones).

Una vez configurada la prueba, lanzamos el test:

~/Antonio$ tsung -p webdav start

Al comienzo del test Tsung crea un directorio en $HOME/.tsung/log en el que escribe los ficheros de reporte. Estos ficheros serán tratados posteriormente para generar HTML con la información, esta tarea se lleva a cabo mediante el script tsung_stats.pl, incluido en la distribución de Tsung. Para poder visualizar el resultado de los tests en tiempo real podemos preparar un pequeño script que llame reiteradamente a tsung_stats.pl:

#!/bin/sh
alias tsung_stats='/usr/lib/tsung/bin/tsung_stats.pl'
tsung_stats
firefox ./graph.html
while [ "true" ]
do
  echo "Refreshing stats..."
  tsung_stats
  sleep 3
done

Este script se debe llamar desde el directorio en el que Tsung genera los reportes. Genera los HTML cada 3 segundos, lo único que debemos hacer es refrescar Firefox para ver la evolución.

tsung-graph-report

2 Respuestas a “Load testing con Tsung

  1. Felix 14 agosto 2009 en 7:18 pm

    Hola Muy interesante tu Articulo.
    Yo trabajo con servidores Centos, tsung se puede instalar en estos servidores.
    Te agradesco si me puedes dar una guia para instalar esta herramienta en Centos 4 o Centos 5.

    Gracias,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: