【问题标题】:K6 Load Testing - How to calculate accurate response times when using the rps optionK6 负载测试 - 如何在使用 rps 选项时计算准确的响应时间
【发布时间】:2020-12-03 17:12:55
【问题描述】:

我通过在请求之前和之后捕获 Date.now() 来记录每个请求需要多长时间。

我这样做是因为响应时间的内置指标仅记录第一个请求所用的时间,而不是它所遵循的任何重定向所用的时间。

在我开始使用 rps 选项之前,我的方法运行良好。

rps 选项限制每秒发送的请求数。

这导致的问题是,即使 HTTP_REQ_DURATION 大致相同,我的手动计算也会增加。

我认为这是因为 RPS 油门,即它正在等待,这导致我使用 Date.now() 的计算值上升 - 这不能准确反映正在发生的事情。

当我使用 rps 选项时,如何计算响应请求(包括所有重定向)所花费的总时间?

【问题讨论】:

    标签: k6


    【解决方案1】:

    我建议不要使用 RPS 选项,而是使用 arrival-rate executor,例如 constant-arrival-rate

    或者,您可以将maxRedirects option 设置为0,这样k6 本身就不会处理重定向。然后,当您自己处理重定向时,您可以获得每个请求的Response object,而不仅仅是最后一个请求。然后你可以总结他们的Response.timings.duration(或任何你关心的)并将结果添加到你的自定义指标中,它不会包含由--rps引起的任何人为延迟。

    【讨论】:

    • 谢谢 na--。如果我使用arrival-rate-executor,我的时间安排是否正确或仍然包含人为延误?
    • 使用 rps 选项,如果超过您指定的阈值,k6 将人为限制请求/秒的数量。使用到达率执行器,您可以准确指定您想要多少次迭代/秒(因此,请求/秒),因此没有限制或人为延迟。
    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多