Locust-多进程分布式

1、Locust支持分布式在多台机器上进行压力测试
–master 设置Locust为master模式。
–slave 设置Locust为slave模式,标记启动一台到多台 Locustslave 机器节点,与标记 --master-host 一起使用(用于设置master模式下的master机器的IP/hostname)

locust -f  testScript.py  --master 
locust -f  testScript.py  --slave  --master-host = Master_IP

2、参数
–master-port:与 --slave 一起使用,用于设置 master 模式下的 master 机器中 Locust 的端口(默认为5557)。注意,locust 将会使用这个指定的端口号,同时指定端口+1的号也会被占用。

–master-bind-host=X.X.X.X :与 --master 一起使用。决定在 master 模式下将会绑定什么网络接口。默认设置为*(所有可用的接口)。

–master-bind-port:与 --master 一起使用。决定哪个网络端口 master 模式将会监听。默认设置为 5557。

–expect-slaves=X:在 no-web 模式下启动 master 时使用。master 将等待X连接节点在测试开始之前连接。
在这里插入图片描述
参考文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,用于在多进程分布式环境下运行 Locust: ```python from locust import HttpUser, task, between from locust.contrib.fasthttp import FastHttpUser from locust import LoadTestShape from locust import events from locust.runners import MasterRunner, WorkerRunner import gevent from gevent import Greenlet class MyUser(HttpUser): wait_time = between(1, 5) @task def my_task(self): self.client.get("/") class MyShape(LoadTestShape): def tick(self): run_time = self.get_run_time() if run_time < 60: return (1, 5) else: return None def run_locust(user_class, host, num_users, spawn_rate, run_time): runner = MasterRunner(host=host) greenlets = [] for _ in range(num_users): worker = WorkerRunner() greenlet = Greenlet(worker.start, user_class, spawn_rate, None, runner, {}, None, None) greenlet.start() greenlet.link_exception(lambda g: runner.quit()) greenlets.append(greenlet) def spawn_users(): for i in range(num_users): runner.hatch(user_class, spawn_rate=spawn_rate) def stop_users(): runner.stop() events.spawn_users += spawn_users events.stop_users += stop_users runner.start(MyShape(run_time)) for g in greenlets: g.join() if __name__ == "__main__": run_locust(MyUser, "http://localhost:8080", 10, 5, 60) ``` 这个示例代码演示了如何在多进程分布式环境下运行 Locust。在这个示例代码中,`run_locust` 函数接受 `user_class`、`host`、`num_users`、`spawn_rate` 和 `run_time` 这些参数。`user_class` 是 Locust 用户类,`host` 是要测试的主机地址,`num_users` 是要启动的用户数,`spawn_rate` 是每秒启动的用户数,`run_time` 是测试运行的时间。 在 `run_locust` 函数中,我们创建了一个 `MasterRunner` 对象,并启动了多个 `WorkerRunner` 对象。然后,我们使用 Greenlet 来启动每个 `WorkerRunner` 对象,并将它们添加到 `MasterRunner` 中。最后,我们使用 `events.spawn_users` 和 `events.stop_users` 事件来控制用户生成和停止。 要运行这个示例代码,只需在控制台中输入以下命令: ``` locust -f locustfile.py --no-web --master ``` 然后在另一个控制台中输入以下命令: ``` locust -f locustfile.py --no-web --worker --master-host=localhost ``` 其中,`--no-web` 参数表示不启动 Locust Web UI,`--master` 参数表示本机是 Master 节点,`--worker` 参数表示本机是 Worker 节点,`--master-host` 参数表示 Master 节点的主机地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值