如何在蝗虫中给不同的用户分配不同的行为

时间:2020-07-29 21:15:02

标签: locust

我想模拟两个同时运行不同任务的用户。蝗虫性能测试框架该怎么做?

2 个答案:

答案 0 :(得分:1)

您的蝗虫任务基于它们的重量是随机的。因此,每个用户将按照不同的顺序执行任务。

如果您希望用户执行不同的任务,则可以根据用户角色或其他逻辑来决定要调用的功能。

class Main(TaskSet):
    def setup(self):
        # Login
        # Get user role and decide which function to call
        if user.role == 'admin':
            self.admin_actions()
        else:
            self.other_user_actions()

        def admin_actions():
            # Do some admin stuff

        def other_user_actions():
            # Do some other stuff
    @task
    def random_task(self):
        # Some random task that everyone does

class MyLocust(HttpLocust):
    task_set = Main
    wait_time = between(5, 10)

答案 1 :(得分:1)

只需定义多个用户类:

class User1(HttpUser):
    @task
    def task1(self):
    ...

class User2(HttpUser):
    @task
    def task2(self):
    ...

如果您希望用户类型之间的分配为50-50,则还需要以偶数个用户启动Locust。