Саранча вызывает больше запросов, чем количество пользователей для имитации параметра - PullRequest
0 голосов
/ 18 июня 2019
#
# run command: locust --host=localhost:8000
#
import inspect
import time
from settings import CONFIG
from locust import Locust, TaskSet, task, events
from lib.usermodule import user_create_service

def stopwatch(func):
    def wrapper(*args, **kwargs):
        # get task's function name
        previous_frame = inspect.currentframe().f_back
        _, _, task_name, _, _ = inspect.getframeinfo(previous_frame)

        start = time.time()
        result = None
        try:
            result = func(*args, **kwargs)
        except Exception as e:
            total = int((time.time() - start) * 1000)
            events.request_failure.fire(request_type="TYPE",
                                        name=task_name,
                                        response_time=total,
                                        exception=e)
        else:
            total = int((time.time() - start) * 1000)
            events.request_success.fire(request_type="TYPE",
                                        name=task_name,
                                        response_time=total,
                                        response_length=0)
        return result

    return wrapper


class GRPCMyClient:
    def __init__(self):
        self.usermodule_hostport = CONFIG['grpc']['mymodule_url']

    @stopwatch
    # this is the method we want to measure
    def user_create_service(self, service_name):
        user_create_service(service_name)
        return True


class GRPCMyLocust(Locust):
    def __init__(self):
        super(GRPCMyLocust, self).__init__()
        self.client = GRPCMyClient()


class GRPCMyTasks(TaskSet):
    @task
    def user_create_service(self):
        self.client.user_create_service("koustubh-api-test")


class GRPCMyUser(GRPCMyLocust):
    task_set = GRPCMyTasks
    min_wait = 1000
    max_wait = 1000

У меня есть вышеуказанный файл саранчи. Когда я запускаю этот файл, используя

locust -f mylocustfile.py

и доступ localhost:8089

И установите

`Number of users to simulate -> 1`
`Hatch rate (users spawned/second) -> 1`

и начните тест. Количество запросов продолжает расти со скоростью 2 в секунду enter image description here

Я бы ожидал, что максимальное количество запросов будет только 1, поскольку как общее количество пользователей, так и частота штриховки установлены на 1. Я что-то упустил?

...