python-3.x - 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
如您所见,我想一次性获取令牌并与负载测试时创建的所有其他用户实例共享它。我想不出办法来实现这一点。任何形式的帮助将不胜感激:)
解决方案
您需要将令牌保存在可在 外部访问的变量中,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
我不是很肯定,但您可能还需要在每个请求之前设置标头,而不是设置一次。
推荐阅读
- node.js - 为 JWT NodeJS Lambda 生成足够的密钥
- java - 如何解析带有负数和减号的算术字符串表达式?
- python-3.x - 将系列转换为季度数据
- c# - 如何在 .NET Core 上注册新的 NuGet 包源?
- javascript - 车把在通过身份验证时没有变化
- html - 为什么当元素包裹在另一个元素中时位置:粘性不起作用?
- eclipse - 如何消除 Maven ear build 中的库?
- javascript - 在按钮单击时显示内容然后隐藏该按钮
- c++ - 在没有未定义行为的情况下实现类似 std::vector 的容器
- boto3 - 等到 AWS Glue 爬网程序完成运行