Saltar al contenido

Cómo escribir el resultado de Locust de la API de prueba en el archivo

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *