【问题标题】:For load testing with Locust, can each locust-user reliably send a request every x seconds?对于 Locust 的负载测试,每个 locust 用户能否可靠地每 x 秒发送一次请求?
【发布时间】:2021-02-07 20:45:22
【问题描述】:

我将使用Locust 在 Web api 上执行一些负载测试。我正在尝试计算需要多少蝗虫用户才能重现预期的峰值负载。

根据我的(松散)计算,在峰值负载期间,我需要每个 locust 用户能够每 2.67 秒向我的 api 发送一次 http 请求。

  • 我是 Locust 的新手,所以我不得不问一下——这种请求率是否可行?

  • 假设在一个请求期间(高峰期),来自 api 的响应时间超过 2.67 秒。 locust 用户是否会在 2.67 标记处触发另一个请求,即使它没有收到之前请求的响应?

对于一些额外的信息,我将使用一组 Azure 虚拟机来生成 Locust 用户。

【问题讨论】:

    标签: locust azure-vm


    【解决方案1】:

    这个请求率可能吗?

    是的!使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-16
      • 2017-04-14
      • 2021-03-18
      • 2020-01-02
      • 2021-12-16
      • 2017-08-09
      • 2021-08-25
      • 1970-01-01
      相关资源
      最近更新 更多