An open API service indexing awesome lists of open source software.

https://github.com/potier97/apachebenchtest

Pruebas de carga usando ApacheBench
https://github.com/potier97/apachebenchtest

apachebench cloud pruebas-cargas-stress

Last synced: 4 months ago
JSON representation

Pruebas de carga usando ApacheBench

Awesome Lists containing this project

README

          

# Tutorial API REST- Flask (cipher/decipher)
API REST - Flask. Esta es una API básica que proporciona 2 endpoints, para cifrar y descifrar información utilizando el algoritmo RC4 utilizando en WEP. Esta aplicación está desarrollada para el curso de Desarrollo de Soluciones Cloud.

# Ejecución
Para ejecutar la aplicación siga las siguientes instrucciones:

## Crear un nuevo ambiente virtual (WINDOWS)
* ```$ python -m venv venv```
* ```$ .\venv\Scripts\activate```

## Instalar las dependencias
* ```$ pip install flask```
* ```$ pip install flask-restful```
* ```$ pip install flask-marshmallow```

## Configurar variables de entorno
* ```$ export FLASK_APP=app.py```
* ```$ export FLASK_DEBUG=1```
* ```$ export FLASK_ENV=development```

## Ejecutar
* ```$ flask run -h 0.0.0.0```

## Consumir los servicios
* Utilice Postman (o una herramienta equivalente) para realizar solicitudes post a los endpoints disponibles.
* Ruta Endpoint 1 [POST]: ```http://ip_servidor:5000/cipher```
* Ruta Endpoint 2 [POST]: ```http://ip_servidor:5000/decipher```
* Ambos Endpoints requieren un JSON con el siguiente formato:
```{"message" : "Texto a Cifrar/Descifrar", "key": "llave para Cifrar/Descifrar"}```

## Pruebas de Carga (Básicas)
### Instalar Apache Benchmark
* ```$ sudo apt-get install apache2-utils```
### Crear archivos JSON
* Crear un archivo JSON de ejemplo (En el repositorio encontrará un par de ejemplos disponibles):
```{"message" : "Texto a Cifrar/Descifrar", "key": "llave para Cifrar/Descifrar"}```
### Ejecución del comando
* ```$ ab -n 1000 -c 100 -p data-cifrar.json -T application/json -rk http://ip_servidor:5000/cipher```
* ```$ ab -n 1000 -c 100 -p data-descifrar.json -T application/json -rk http://ip_servidor:5000/decipher```

donde:
* ```-k (keepAlive)```. Realizar múltiples solicitudes dentro de una sesión HTTP, funcionalidad de los navegadores por la naturaleza
* ```-r (flag)```. Indica que la conexión (socket) no se cierra al recibir errores
* ```-n (requests)```. Número total de solicitudes para ejecutar
* ```-c (concurrency)```. Cantidad de conexiones concurrentes
* ```-p (file.json)```. JSON que se envia en el cuerpo del request
* ```-T application/json```. Especifica la estructura de datos del body
* ```-e data.csv```. Guarda los resultados en un archivo CSV

## Script de pruebas

* ```$ sh script.sh```

contiene los comandos de prueba de carga para los endpoints de cifrado y descifrado.

## HTOP

Instalar htop
* ```$ apk add htop```

Ejecutar htop
* ```$ htop```