在负载测试期间,如何在终端中读取报告



当我对 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":[]}

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

让我们逐行理解它

请求 [总计,费率] 138, 1.68

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

持续时间 [总计、攻击、等待] 1分22秒20931745秒,1分22秒22.200130205秒,9.187245毫秒

攻击的总持续时间,应为请求所花费的时间和等待响应所花费的时间之和

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

这是简单且最有用的:以毫秒为单位的平均延迟、第 50 个百分位数、第 95 个百分位数和第 99 个百分位数延迟以及占用最大延迟的请求 第 99 个百分位延迟意味着 99% 的响应在此时间内送达 根据您的产品,您应该考虑第 95 位或第 99 位作为要改进的实数

字节数 [总计,平均值] 19596, 142.00

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

输出字节数 [总计,平均值] 0, 0.00

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

成功率 [比率] 100.00%

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

状态代码 [代码:计数] 200:138

状态代码按响应代码划分:在您的案例中,所有 138 个请求都响应了 200 个响应

错误集:

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

最新更新