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
- Host: GitHub
- URL: https://github.com/potier97/apachebenchtest
- Owner: potier97
- Created: 2024-04-19T21:22:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-19T21:22:58.000Z (almost 2 years ago)
- Last Synced: 2025-01-18T16:50:09.755Z (about 1 year ago)
- Topics: apachebench, cloud, pruebas-cargas-stress
- Language: Python
- Homepage:
- Size: 196 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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```