Intalar Locust en Windows
Instalación
Instalar Python:
- Descargar python installer de https://www.python.org/downloads/windows/
- Seguir las instrucciones de instalación Automática.
Instalar Locust:
- Abrir Power Shell como administrador:
- Ejecutar
> python
para checar la correcta instalación. Debemos tener como respuesta algo parecido a lo siguiente:
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
- Salir de python con:
>>>quit()
- Crear un directorio (donde [user] es su usuario) en el descargaremos pip (librería necesarias para instalar paquetes en python):
> mkdir C:\Users\[user]\envs
- Movernos al directorio:
> cd C:\Users\[user]\envs
- Asegurar que nuestra sistema operativo soporta TLS 1.2. Si la respuesta es TRUE si lo soporta.
> [Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls12'
- Asegurar que está habilitado TLS 1.2:
> [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
- Descarga pip con:
> (new-object System.Net.WebClient).DownloadFile('https://bootstrap.pypa.io/get-pip.py', 'C:\Users\[user]\envs\get-pip.py')
- Instalar pip con:
> python .\get-pip.py
- Revisar que pip está instalado:
> pip -V
con una respuesta similar a:
pip 21.0.1 from c:\users\[user]\appdata\local\programs\python\python37-32\lib\site-packages\pip (python 3.7)
- Eliminar los archivos descargados con:
> Remove-Item path C:\Users\[user]\envs
- Crear un ambiente virtual (venv) para que las instalaciones de los paquetes sean locales a un proyecto y no globales para la máquina:
> cd C:\Users\[user] > python -m venv env
- Activar en ambiente virtual:
> .\env\Scripts\activate
con resultado:
(env) PS C:\Users\[user]>
Importante saber que cada vez que queramos utilizar los paquetes específicos de un ambiente virtual, es necesario activar el ambiente.
- Instalar Locust:
> pip install locust
- Revisar que locust está instalado con:
> locust -V
con respuesta similar a:
locust 1.4.3
(Si tenemos problemas de permisos debemos abrir Power Shell como administrador y ejecutar:
>Set-ExecutionPolicy Unrestricted
)Crear archivo de locust (locustfile.py)
- En cualquier editor de texto (recomiendo Sublime Text) podemos crear un archivo de acuerdo a los documentos de https://docs.locust.io/en/stable/. Debe tener el siguiente formato general:
from locust import HttpUser, task, between # otras librerías a importar # clase que contiene un set de pruebas (puede haber varios) class PruebaLogin(HttpUser): # tiempo a esperar entre ejecuciones wait_time = between(.5, 5) # función de la primera tarea a ejecutar con proporción de veces de ejecución @task(1) def get_login(self): # código de la tarea a ejecutar self.client.request("GET", "/ProCotiza_DM/Login.aspx") # función de la segunda tarea @task(4) def post_login(self): # código de la tarea a ejecutar self.client.request("POST", "/ProCotiza_DM/Login.aspx", headers=head, data=data) # otras tareas # otras clases con otros set de pruebas class PruebaPantallaA(HttpUser): # tiempo a esperar entre ejecuciones wait_time = between(.5, 5) # ...
Ejecutar el archivo de locust
- Abrir Power Shell, activar el ambiente virtual y ejecutar:
locust -f locustfile.py -H https://[ip o url para probar]
- Permitir el acceso a Python a redes.
- La respuesta en Power Shell debe de ser:
DESKTOP-DM2O61V/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces) [2021-02-12 21:31:29,497] DESKTOP-DM2O61V/INFO/locust.main: Starting Locust 1.4.3
- Para frenar la ejecución de Locust utilizar
Ctrl + c
Utilizar Locust
- Accesar Locust utilizando cualquier navegador en http://localhost:8089
- Agregar el número de usuarios concurrentes finales.
- Agregar el número de usuarios a crear por segundo.
- Click en "Start swarming"
- Accesar Locust utilizando cualquier navegador en http://localhost:8089