如何解决对于 Locust 的负载测试,每个 locust 用户能否每 x 秒可靠地发送一次请求?
我将使用 Locust 在 Web api 上执行一些负载测试。我正在尝试计算需要多少蝗虫用户才能重现预期的峰值负载。
根据我的(松散)计算,在峰值负载期间,我需要每个 locust 用户能够每 2.67 秒向我的 api 发送一次 http 请求。
-
我是 Locust 的新手,所以我不得不问 - 这个请求率可能吗?
-
假设在一个请求期间(在高峰时间),来自 api 的响应时间超过 2.67 秒。 locust 用户是否会在 2.67 标记处触发另一个请求——即使它没有收到来自前一个请求的响应?
对于一些额外的信息,我将使用一组 Azure 虚拟机来生成蝗虫用户。
解决方法
这个请求率可能吗?
是的!使用 constant_pacing https://docs.locust.io/en/stable/writing-a-locustfile.html#wait-time-attribute,您可以限制单个用户每单位时间可以执行的任务数量。
假设在一个请求期间(高峰时间),来自 api 的响应时间超过 2.67 秒。 locust 用户是否会在 2.67 标记处触发另一个请求——即使它没有收到来自前一个请求的响应?
没有。每个用户都是同步的,所以它不能在前一个请求完成之前触发新的请求。当测试期间延迟可能增加时,确保恒定吞吐量的最简单方法是事先增加用户数量并调整每个用户的步调(例如,将用户数量加倍并将步调时间增加到 5.33 秒)。
不要忘记,在大多数实际情况下,当您的系统已经饱和以至于响应时间增加时,发送更多并发请求不太可能产生更高的吞吐量(反而会导致更高的响应时间和/或错误)。
编辑:如果您想设置全局速率,而不是每个用户的速率,请查看 locust-plugins constant_total_ips() 计时器:https://github.com/SvenskaSpel/locust-plugins/blob/master/examples/constant_total_ips_ex.py
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。