首页 > 解决方案 > Locust 1.6.0 中的单个设置步骤?

问题描述

我一直在尝试如何只设置一次资源并与使用 locust 创建的用户共享

这是我一直在尝试的:

from locust import HttpUser
from locust.user.task import task

class WebsiteUser(HttpUser):
    def setup(self):
        client = clients.HttpSession(base_url=self.host)
        token = client.post("get-token/", {'email': 'someemail', 'password': 'somepassword'})
        client.headers.update(
            {
                'Authorization': 'Bearer ' + token
            }
        )
    tasks = UserBehavior
    min_wait = 500
    max_wait = 900

如您所见,我想一次性获取令牌并与负载测试时创建的所有其他用户实例共享它。我想不出办法来实现这一点。任何形式的帮助将不胜感激:)

标签: python-3.xapiperformance-testingload-testinglocust

解决方案


您需要将令牌保存在可在 外部访问的变量中,User以使其可供所有用户访问,否则每个用户都将创建自己的。

from locust import HttpUser
from locust.user.task import task

token = ''

class WebsiteUser(HttpUser):
    def setup(self):
        global token
        client = clients.HttpSession(base_url=self.host)
        token = client.post("get-token/", {'email': 'someemail', 'password': 'somepassword'})
        client.headers.update(
            {
                'Authorization': 'Bearer ' + token
            }
        )
    tasks = UserBehavior
    min_wait = 500
    max_wait = 900

我不是很肯定,但您可能还需要在每个请求之前设置标头,而不是设置一次。


推荐阅读