2015-11-19 2 views
1

Мне нужен пример или пояснение о том, как написать тест загрузки саранчи с помощью настраиваемого клиента (в моем случае - WebSocket Server). Я видел объяснение, данное в саранче documentation, но я понимаю, как точно функции __getattr__ и def wrapper(*args, **kwargs):, которые захватывают события саранчи, запускаются через саранчу.Пример написания теста загрузки сервера websocket с использованием поддержки пользовательских клиентов саранчи

ответ

0

Я играл с этим сегодня, а также нашел удобный пример немного сложным, потому что трудно сказать, где происходит волшебство. Вот гораздо более простая версия взаимодействия с клиентом и задачами и пользователями. Вместо декоратора, который ловит какой-либо произвольный метод для клиента, я сделал это только для того, чтобы сделать одно, чтобы вы могли видеть, где происходит синхронизация и обработка ошибок, и как он использует крючки событий саранчи для отправки успехов и сбоев.

import time 

from locust import TaskSet, task, Locust, events 


class SimpleClient(object): 

    def __init__(self): 
     pass 

    def execute(self, name): 
     start_time = time.time() 
     try: 
      print("do your things cause stress and throw exceptions here.") 
      time.sleep(1) 
     except Exception as e: 
      total_time = int((time.time() - start_time) * 1000) 
      events.request_failure.fire(request_type="execute", name=name, response_time=total_time, exception=e) 
     else: 
      total_time = int((time.time() - start_time) * 1000) 
      events.request_success.fire(request_type="execute", name=name, response_time=total_time, response_length=0) 


class SimpleTasks(TaskSet): 

    @task 
    def simple_task(self): 
     self.client.execute('simple_things') 


class SimpleUser(Locust): 
    def __init__(self, *args, **kwargs): 
     super(Locust, self).__init__(*args, **kwargs) 
     self.client = SimpleClient() 

    task_set = SimpleTasks 
    min_wait = 1000 
    max_wait = 10000 

, а затем вы можете запустить это в терминале что-то вроде:

locust -f simple_test.py --no-web --clients=2 --hatch-rate=2 --num-request=4 --print-stats --only-summary 

 Смежные вопросы

  • Нет связанных вопросов^_^