performance-testing - 使用 Locust 进行分布式 A/B 类测试
问题描述
我需要比较两个彼此相距半个地球的客户端的网络延迟,并并排可视化请求来自的每个位置的响应时间历史。我一直在研究负载和性能测试工具,发现 Locust 非常方便。有没有一种方法可以让我以快速/标准/非骇客的方式实现我的 Locust 目标?
解决方案
无论您是需要在不同位置运行相同任务的 2 个客户端来比较,还是需要在 2 个不同位置运行 2 个不同任务的 2 个客户端,Locust 都可以处理其中任何一种情况。
有关如何编写任务的详细信息,请查看文档的任务部分。您可以编写一个任务来完成您需要的两个任务,为每个启动的用户随机选择两个不同的任务,编写两个任务并让它们随机加权(包括将一个加权为 0,这样它就永远不会运行,有效地关闭一项任务,因此当时只运行另一项),以及许多其他选项。哪种方法最好取决于您需要什么以及您想如何做。可能需要一些实验来确定什么是最好的。
至于在多个位置运行,您可以在不同的地方分别运行测试并比较结果,或者 Locust 可以分布式运行,这样您就可以让多个位置的工作人员同时运行。您可能还想考虑使用Docker,如果您使用 AWS、Azure、GCP 或任何其他云提供商来启动实例以在其上运行,它在某些方面可以更容易地在不同的位置运行。
推荐阅读
- javascript - 普通对象 VS 模型对象的类实例
- c++ - 通过嵌入式 IWebBrowser2 控件中的链接打开 youtube 搜索失败
- c# - Unity 2018 - OnAudioFilterRead() 从缓冲区实时播放
- go - 使用协议缓冲区错误进行构建:结构初始化程序中的值太少
- google-bigquery - Google Data Studio 无法探索 Big Query 时间分区表
- excel - EXCEL 数据验证 ISBLANK 不起作用
- python - 在电子邮件中删除 python 中的 nan
- mirth - 如何为欢乐添加 Hprim 支持?
- php - 有效的PHP数组和选择
- selenium - 从 Testng 运行测试组时在 Testlistener 中获取 java.lang.ClasscastException