使用 Locust 进行压力测试软件(但我需要 运行 一步一步)
Stress testing software (but I need run it step by step) with locust
作为标题中的问题
我一步一步的意思是:
-报名
-获取课程
-选择课程
这三个必须按顺序进行,一步一步
供参考
我已经在 on_start 上成功了,但状态结果永远不正确
例如:
我设置用户数 100
我设置了“/signup”的终点,然后
我在该端点的 table 状态上看到 55,但实际上我们有 100 个用户在数据库中注册
我应该怎么做才能使其正常工作?
由于 Locust 任务通常是随机执行的,您可能希望在同一个任务中执行所有这些步骤,以确保它们都按顺序依次执行。您可以在两者之间插入对 TaskSet 的 wait()
方法的调用(或仅手动调用 time.sleep()
)以模拟用户在操作之间等待。
类似这样的方法可能有效:
class MyTaskSet(TaskSet):
def on_start(self):
self.client.post("/signup")
self.wait()
self.client.get("/get-course")
self.wait()
self.client.post("/select-course")
self.wait()
关于您在统计数据中看到 55 个请求的问题,尽管看起来实际发出了 100 个请求(至少我是这样解释您的文本的),这听起来可能是因为 Locust 重置了一次统计数据所有用户都在 ramp-up 阶段生成。
感谢回复
anw 我自己解决了,问题是在 hacth 完成之后
Locust 始终会自动重置统计数据,即使在 运行 测试过程中也会将统计数据搞乱。
(抱歉我的英语不好)
在我对 locust 文件夹中的代码进行注释之后
一切顺利
作为标题中的问题
我一步一步的意思是:
-报名
-获取课程
-选择课程
这三个必须按顺序进行,一步一步
供参考
我已经在 on_start 上成功了,但状态结果永远不正确
例如:
我设置用户数 100
我设置了“/signup”的终点,然后
我在该端点的 table 状态上看到 55,但实际上我们有 100 个用户在数据库中注册
我应该怎么做才能使其正常工作?
由于 Locust 任务通常是随机执行的,您可能希望在同一个任务中执行所有这些步骤,以确保它们都按顺序依次执行。您可以在两者之间插入对 TaskSet 的 wait()
方法的调用(或仅手动调用 time.sleep()
)以模拟用户在操作之间等待。
类似这样的方法可能有效:
class MyTaskSet(TaskSet):
def on_start(self):
self.client.post("/signup")
self.wait()
self.client.get("/get-course")
self.wait()
self.client.post("/select-course")
self.wait()
关于您在统计数据中看到 55 个请求的问题,尽管看起来实际发出了 100 个请求(至少我是这样解释您的文本的),这听起来可能是因为 Locust 重置了一次统计数据所有用户都在 ramp-up 阶段生成。
感谢回复
anw 我自己解决了,问题是在 hacth 完成之后
Locust 始终会自动重置统计数据,即使在 运行 测试过程中也会将统计数据搞乱。
(抱歉我的英语不好)
在我对 locust 文件夹中的代码进行注释之后 一切顺利