gpt4 book ai didi

stress-testing - 通过提供用户列表来使用locust.io的方法

转载 作者:行者123 更新时间:2023-12-03 09:15:40 25 4
gpt4 key购买 nike

我需要对系统进行压力测试,http://locust.io似乎是解决此问题的最佳方法。但是,看起来它设置为每次使用同一用户。我需要每个衍生工具以不同的用户身份登录。我该如何进行设置?或者,是否有另一个可以很好使用的系统?

最佳答案

蝗虫的作者在这里。

默认情况下,每个HttpLocust用户实例都有一个HTTP客户端,该客户端具有自己的单独 session 。

Locust没有提供用户凭证列表或类似凭证的任何功能。但是,您的负载测试脚本只是python代码,幸运的是,自己实现此功能很简单。

这是一个简短的示例:

# locustfile.py

from locust import HttpLocust, TaskSet, task

USER_CREDENTIALS = [
("user1", "password"),
("user2", "password"),
("user3", "password"),
]

class UserBehaviour(TaskSet):
def on_start(self):
if len(USER_CREDENTIALS) > 0:
user, passw = USER_CREDENTIALS.pop()
self.client.post("/login", {"username":user, "password":passw})

@task
def some_task(self):
# user should be logged in here (unless the USER_CREDENTIALS ran out)
self.client.get("/protected/resource")

class User(HttpLocust):
task_set = UserBehaviour
min_wait = 5000
max_wait = 60000

上面的代码在运行Locust分布式时不起作用,因为相同的代码在每个从属节点上运行,并且它们不共享任何状态。因此,您将不得不引入一些外部数据存储,从属节点可以使用这些外部数据存储来共享状态(例如PostgreSQL,redis,memcached或其他内容)。

关于stress-testing - 通过提供用户列表来使用locust.io的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com