【问题标题】:During load testing how to read the report in terminal在负载测试期间如何在终端中阅读报告
【发布时间】:2018-10-16 08:51:26
【问题描述】:

当我对 golang api 进行负载测试时,会生成一个报告,但我不知道它是什么以及如何阅读它:-

我在终端运行命令

echo "GET http://localhost:8080/api" | vegeta attack -rate=100/m | vegeta report

然后它将生成以下报告:-

Requests      [total, rate]            138, 1.68
Duration      [total, attack, wait]    1m22.20931745s, 1m22.200130205s, 9.187245ms
Latencies     [mean, 50, 95, 99, max]  8.956174ms, 9.06458ms, 10.682252ms, 16.007578ms, 46.439935ms
Bytes In      [total, mean]            19596, 142.00
Bytes Out     [total, mean]            0, 0.00
Success       [ratio]                  100.00%
Status Codes  [code:count]             200:138  
Error Set:

或者当我运行echo "GET http://localhost:8080/api" | vegeta attack -rate=100/m | vegeta report -type=json

然后生成如下 json 格式的报告:-

{"latencies:
{"total":103506418,
"mean":9409674,
"50th":9484403,
"95th":11918898,
"99th":12008257,
"max":12008257},
"bytes_in":{"total":1562,"mean":142},
"bytes_out":
{"total":0,"mean":0},
"earliest":"2018-10-16T14:15:13.251091124+05:30",
"latest":"2018-10-16T14:15:19.251141502+05:30",
"end":"2018-10-16T14:15:19.260119671+05:30",
"duration":6000050378,
"wait":8978169,
"requests":11,
"rate":1.8333179401848014,
"success":1,
"status_codes":{"200":11},
"errors":[]}

如何理解这份报告。是否有任何文件或任何人知道它?

【问题讨论】:

    标签: terminal load-testing vegeta


    【解决方案1】:

    让我们逐行理解

    请求 [总数,速率] 138, 1.68

    此行打印会话中触发的请求总数 (138) 以及每秒速率(每秒 1.8 个请求)

    持续时间[总、攻击、等待] 1m22.20931745s, 1m22.200130205s, 9.187245ms

    攻击的总持续时间应该是请求所花费的时间和等待响应所花费的时间的总和

    延迟 [平均,50、95、99,最大值] 8.956174ms、9.06458ms、10.682252ms、16.007578ms、46.439935ms

    这很简单且最有用:平均延迟(以毫秒为单位)、第 50 个百分位、第 95 个百分位和第 99 个百分位延迟以及最大延迟的请求 第 99 个百分位延迟意味着 99% 的响应在这段时间内提供 根据您的产品,您应该考虑将第 95 或第 99 作为实际需要改进的数字

    Bytes In [total, mean] 19596, 142.00

    所有响应接收的总字节数以及每个响应的平均字节数

    Bytes Out [total, mean] 0, 0.00

    为所有请求发送的总字节数以及每个请求的平均字节数。由于您使用的 GET 不包含任何有效负载,因此对您来说它是 0

    成功[比率] 100.00%

    成功百分比:100% 的请求成功

    状态码 [code:count] 200:138

    按响应代码划分的状态代码:在您的情况下,所有 138 个请求都以 200 个响应响应

    错误集:

    错误码划分:如果有错误 400/500s ,会在此处报告。这是空的,因为你有 100% 的成功率

    【讨论】:

    • 当我们写vegeta report -type=json的命令时,只有延迟结果来了,你能不能对json多解释一下
    • @misha ,如果您看到延迟包含除了总计的附加字段之外的相同字段,则 json 报告是相同的; [总计,平均值,50,90,99,最大值]。 Total 表示所有请求花费的总时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2012-07-28
    • 2018-09-02
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多