Herramienta de prueba de rendimiento de software de código abierto
curl-loader es una herramienta de prueba de rendimiento de software de código abierto escrita en el lenguaje de programación C.
Características
curl-loader es capaz de simular el comportamiento de aplicaciones de cientos de miles de clientes HTTP / HTTPS y FTP / FTPS , cada uno con su propia dirección IP de origen. A diferencia de otras herramientas, curl-loader utiliza pilas de protocolos de cliente escritas en C reales, es decir, pilas HTTP y FTP de libcurl y TLS / SSL de openSSL , y simula el comportamiento del usuario con soporte para opciones de inicio de sesión y autenticación.
Las características principales son:
Ejecución de entre 2500 y 100 000 clientes de carga virtuales o más, todos desde un único proceso curl-loader. La cantidad real de clientes virtuales puede ser varias veces mayor, ya que está limitada principalmente por la memoria. Cada cliente virtual carga tráfico desde su dirección IP de origen "personal", o desde la dirección IP "común" compartida por todos los clientes, o desde las direcciones IP compartidas por algunos clientes, donde un conjunto limitado de direcciones IP compartidas puede ser utilizado por un lote de clientes.
- Aumento del número de clientes virtuales al iniciar la carga, ya sea en modo automático o manual;
- Direcciones y URI IPv4 e IPv6 ;
- HTTP 1.1. GET, POST, PUT, DELETE, HEAD incluidas las operaciones de carga de archivos;
- Inicio de sesión con autenticación de usuario HTTP con métodos POST o GET+POST. Las opciones son un nombre de usuario y una contraseña únicos y configurables para cada cliente virtual, así como una cadena de mensajes configurable (post-forms). Otra opción es cargar usuarios con credenciales desde un archivo de texto de tokens;
- Formularios HTTP POST/GET con hasta 16 tokens completados desde un archivo de texto de tokens;
- Cierre de sesión de usuario HTTP con POST, GET+POST o GET (cookies); cierre de sesión POST con cadena publicada configurable (formularios posteriores);
- Envío por POST de datos de formularios multiparte HTTP según RFC1867;
- Autenticación web y proxy HTTP (respuestas HTTP 401 y 407) con Basic, Digest (RFC2617) y NTLM;
- Redirecciones HTTP 3xx con número ilimitado de redirecciones;
- Cookies HTTP y cachés DNS ;
- FTP pasivo y activo, carga FTP ;
- Personalización completa de los encabezados HTTP / FTP de las solicitudes del cliente ;
- Tasa límite de transferencia para cada operación de carga o descarga de cliente por URL;
- Probabilidad de obtención de URL ;
- Reutilización o restablecimiento de conexiones TCP en función de cada URL ;
- Número ilimitado de URL configurables. Combinación de URL HTTP , HTTPS , FTP y FTPS en una única configuración por lotes (plan de prueba);
- Temporizadores de establecimiento de conexión para cada URL;
- Monitoreo y aplicación de temporizadores de finalización de URL para cada cliente;
- Temporizadores de "suspensión" entre URL y después de ellas, incluidos temporizadores aleatorios tomados de un intervalo configurable;
- Archivo de registro con las actividades de seguimiento de cada cliente virtual;
- Registro de respuestas (encabezados y cuerpos) a archivos;
- Ejemplos de configuración de lotes precocidos (plan de prueba);
- Cargar estado en consola y con salida a archivo;
- Estado y estadísticas de cada cliente virtual que se registran en el archivo;
El objetivo del proyecto curl-loader es ofrecer una solución de código abierto potente y flexible para pruebas de rendimiento de software del lado del cliente como una alternativa real a Spirent Avalanche e IXIA IxLoad. Curl-loader normalmente funciona en conjunto con el servidor web nginx o Apache como lado del servidor.
La herramienta está desarrollada y mantenida por el Dr. Robert Iakobashvili y Michael Moser.
Véase también
Referencias
- "se lanzó curl-loader". Linux Weekly News . 16 de julio de 2007 . Consultado el 7 de agosto de 2007 .
Enlaces externos