如何从蝗虫 API 统计中删除 HTTPError 429?



在我执行负载测试时,我试图增加客户端的数量,以达到我开始收到HTTP错误429的"请求太多"的程度。

API 的统计信息似乎包括返回 429 时的响应时间。当 API 在没有任何 429 错误的情况下工作时,我收到的最短响应时间约为 100 毫秒。当 429 错误开始发生时,最小响应时间小于 10ms。这导致统计信息被 429 个错误的响应时间所扭曲,因为它们通常返回得相当快。

如果发生错误,我尝试使用response.close(),但这会关闭连接并禁止达到请求的客户端数量。

我不知道如何删除 429 错误响应时间,因为响应时间已经被捕获。 有没有办法防止"太多请求"失败包含在统计信息中?

另一种选择是使用常规响应包,而不是 HTTPLocust 的版本,然后根据 API 的运行时间构建我自己的直方图。

如果在捕获响应块中抛出异常,则根本不会记录请求:https://docs.locust.io/en/stable/writing-a-locustfile.html#manually-controlling-if-a-request-should-be-considered-successful-or-a-failure

from locust.exception import RescheduleTask
...
with self.client.get("/does_not_exist/", catch_response=True) as response:
if response.status_code == 404:
raise RescheduleTask()

最新更新