【发布时间】:2018-05-15 20:20:46
【问题描述】:
我正在构建一个小型实用程序,用于打包 Locust - 性能测试工具 (https://locust.io/) 并将其部署在 azure 函数上。只是一个有趣的副项目,可以帮助您了解无服务器的热潮。
这是 git 存储库:https://github.com/amanvirmundra/locust-serverless。
现在我认为在无服务器架构上以分布式模式运行 locust 测试会很棒(天蓝色功能消耗计划)。 Locust 支持分布式模式,但它需要 slave 使用它的 IP 与 master 通信。就是这个问题!!
我可以提供多种功能,但我不太确定如何让它们在运行中相互交谈(无需人工干预)。
大声思考:
- 以某种方式获取主函数的 IP 并将其传递给从函数。不确定这在 Azure 函数中是否可行,但有些人想出了一种方法来使用 .net 库获取 azure 函数的 IP。我的是 python 版本,但我确信如果可以使用 .net 来完成,那么也会有 python 方式。
- 创建某种 VPN 并将功能映射到专用 IP。不确定这种映射在 azure 中是否可行。
- 有些人使用 AWS Lambdas (https://github.com/FutureSharks/invokust) 完成了这项工作。询问那个人或尝试理解代码。
需要建议来弄清楚什么是可能的,同时保持无服务器。对想法和/或代码贡献开放:)
更新
这是当前设置:
- 性能测试会话由 http 请求触发,该请求包含要发出的请求数、基本 url 和 no。要模拟的并发用户数。
- Locustfile 定义测试设置和编排。
- Run.py 触发测试。
我现在想做的是为大规模性能测试设置主/从设置(集群)。
- 我想主函数是由一个 http 请求触发的,具有类似的有效负载。
- 主设备将依次触发从设备。
- 当从属加入集群时,性能会话将开始。
【问题讨论】:
标签: azure performance-testing azure-functions serverless locust