2016-02-10 4 views
2

Скажите, что у меня 10k пользователей в рое саранчи. Я хочу, чтобы 2000 из них выполняли задачи из Task Set A, 2000 из них выполняли задачи из набора задач B, а 6000 из них запускали задачи из набора задач C, где каждый набор задач имел свою собственную частоту.Каким образом можно группировать пользователей locust.io в разные сегменты, на которых запущены собственные наборы задач?

Есть ли способ настроить это? Я пытался настроить self.tasks во время выполнения, но он, похоже, не работает.

ответ

0

Вы можете дать соответствующий вес для решения этой проблемы. @task (2) запускается дважды из @task (1). Ниже для Вашего случая:

@task(2) 
def A(self): 
    a() 

@task(2) 
def B(self): 
    b() 

@task(6) 
def C(self): 
    c() 
+0

Это будет на самом деле не делать то, что я хочу. Я хочу указать разные частоты для каждого класса пользователей, которые, как мне кажется, требуют использования разных наборов задач, каждый из которых может иметь свои собственные минимальные и максимальные тайминги. – fields

+0

с частотами вы имеете в виду RPS? –

+0

да, поэтому группа a будет делать что-то каждые три секунды, а группа b будет делать что-то каждые 10 секунд и так далее. – fields

2

Вы можете назначить weights к классу саранчи. Просто определите 3 разных класса Locust (по одному для каждого типа пользователей), каждый из которых использует другой набор задач и с весами, установленными на 2, 2 и 6 соответственно.

0

Я думаю, что вы ищете, ближе к весовому поведению пользователя. См. http://docs.locust.io/en/latest/writing-a-locustfile.html#the-weight-attribute

Суть в том, что вы можете определять и весить различные типы пользователей, а затем запускать свою команду саранчи со всеми пользователями, определенными как аргументы.

Оклейка от ссылки для потомков:

class WebUserLocust(Locust): 
    weight = 3 
    .... 

class MobileUserLocust(Locust): 
    weight = 1 
    .... 

затем

locust WebUserLocust MobileUserLocust 
Смежные вопросы