首页 > 解决方案 > 使用 Locust 进行分布式 A/B 类测试

问题描述

我需要比较两个彼此相距半个地球的客户端的网络延迟,并并排可视化请求来自的每个位置的响应时间历史。我一直在研究负载和性能测试工具,发现 Locust 非常方便。有没有一种方法可以让我以快速/标准/非骇客的方式实现我的 Locust 目标?

标签: performance-testingdistributedlocust

解决方案


无论您是需要在不同位置运行相同任务的 2 个客户端来比较,还是需要在 2 个不同位置运行 2 个不同任务的 2 个客户端,Locust 都可以处理其中任何一种情况。

有关如何编写任务的详细信息,请查看文档的任务部分。您可以编写一个任务来完成您需要的两个任务,为每个启动的用户随机选择两个不同的任务,编写两个任务并让它们随机加权(包括将一个加权为 0,这样它就永远不会运行,有效地关闭一项任务,因此当时只运行另一项),以及许多其他选项。哪种方法最好取决于您需要什么以及您想如何做。可能需要一些实验来确定什么是最好的。

至于在多个位置运行,您可以在不同的地方分别运行测试并比较结果,或者 Locust 可以分布式运行,这样您就可以让多个位置的工作人员同时运行。您可能还想考虑使用Docker,如果您使用 AWS、Azure、GCP 或任何其他云提供商来启动实例以在其上运行,它在某些方面可以更容易地在不同的位置运行。


推荐阅读