Locust 对于蝗虫,如何从任务中访问特定的蝗虫用户?

Locust 对于蝗虫,如何从任务中访问特定的蝗虫用户?,locust,Locust,我正在使用蝗虫向端点发送各种http请求。端点有时可能返回401,指示蝗虫用户需要新的承载令牌。蝗虫是否提供了一种访问正在进行给定呼叫的蝗虫用户的方法 如果从服务器返回401,我希望能够添加WebUser.login()之类的seomthing class WebUser(HttpUser): tasks = {LoadTasks} bearer = "" on_start = login() //gets a bearer-token for the

我正在使用蝗虫向端点发送各种http请求。端点有时可能返回401,指示蝗虫用户需要新的承载令牌。蝗虫是否提供了一种访问正在进行给定呼叫的蝗虫用户的方法

如果从服务器返回401,我希望能够添加WebUser.login()之类的seomthing

class WebUser(HttpUser):
    tasks = {LoadTasks}
    bearer = ""
    on_start = login() //gets a bearer-token for the 'bearer' field.


class LoadTasks(TaskSet):
    endpointPath = "/domain/subdomain/endpoint"

    @task(5)
    def put(self):
        path = self.endpointpath
        response = self.client.put()
                                                           
        if response.status_code == 401:
            // WebUser to call authorization endpoint and retrieve new access_token
            // i.e. locust-user.login()
           

你不必担心做什么特别的事。Hocust将获取您在任务中编写的代码,并作为每个用户自动运行,这有点抽象了并发性。编写代码时,就好像您要作为单个用户运行它一样,而且几乎总是可以运行的

所有这些都只是说,是的,您的代码应该按原样工作,以满足您的需求。您只需检查类似的401,并告诉它请求新令牌即可。

来自文档:

任务集实例包含对User-self.User的引用。它还有一个指向用户客户端属性的快捷方式


但是如何从“put”任务内部访问WebUser的“bearer”属性呢?不要将其存储在那里。将其存储在
LoadTasks
类中。