Posteriormente a consultar con expertos en el tema, programadores de deferentes ramas y maestros dimos con la solución al problema y la plasmamos en este post.
Solución:
ACTUALIZAR
Guardar archivo csv con la opción --csv
se agrega con esta versión. Entonces puede ejecutar el siguiente comando para guardar el resultado de la prueba como foo_requests.csv
y foo_distribution.csv
locust -f locustfile.py --host=http://localhost --no-web --hatch-rate=20 --clients=10000 --only-summary --csv=foo
PARA la versión por debajo de 0.8
Ha habido un compromiso para guardar el resultado de Locust, pero aún no se fusionó con Locust. Sin embargo, puede actualizarlo manualmente con este compromiso. Está agregando nuevos parámetros como --statsfile=result.log
para guardar el resultado.
Entonces el comando completo debería verse así
locust -f locustfile.py --host=http://localhost --no-web --hatch-rate=20 --clients=10000 --only-summary --statsfile=result.log
Puede consultar esta publicación para actualizar Locust y verificar el resultado del registro.
Otra opción hasta que la opción statsfile esté activa sería redirigir stderr a un archivo de salida, que aparentemente es donde se registran las estadísticas:
locust -f locustfile.py --host=http://example.com --no-web --clients=20 --hatch-rate=20 --num-request=1000 --only-summary > locust.log 2>&1
He intentado imprimir estadísticas de langostas en un archivo sin éxito, pero puedes hacerlo usando gancho de evento : http://docs.locust.io/en/latest/api.html#disponible-hooks.
Puede agregar una función al evento request_success y request_failure, de modo que cada vez que una solicitud tenga éxito o falle, se llamará a su función de enlace para obtener los datos de la solicitud en una lista o cualquier variable que desee.
Luego, puede imprimir fácilmente los datos en un archivo csv, por ejemplo
Espero que te ayude
import locust.events
from locust import HttpLocust, TaskSet
class LocustUser(HttpLocust):
task_set = TaskSet
min_wait = 1000
max_wait = 1000
request_success_stats = [list()]
request_fail_stats = [list()]
def __init__(self):
locust.events.request_success += self.hook_request_success
locust.events.request_failure += self.hook_request_fail
locust.events.quitting += self.hook_locust_quit
def hook_request_success(self, request_type, name, response_time, response_length):
self.request_success_stats.append([name, request_type, response_time])
def hook_request_fail(self, request_type, name, response_time, exception):
self.request_fail_stats.append([name, request_type, response_time, exception])
def hook_locust_quit(self):
self.save_success_stats()
def save_success_stats(self):
import csv
with open('success_req_stats.csv', 'wb') as csv_file:
writer = csv.writer(csv_file)
for value in self.request_success_stats:
writer.writerow(value)
Al final de la página puedes encontrar las aclaraciones de otros administradores, tú además eres capaz dejar el tuyo si lo deseas.