让我们更多地了解K6中的指标:第一部分

618 阅读3分钟

朋友们,你们好!

在这篇博客中,我们将用Grafana k6研究负载测试工具中各种类型的API的度量。然而,你可能会问,这些情况是什么,为什么我们要使用它们。因此,让我们从一些核心指标的基本原理开始。

它跟踪一个系统在真实世界场景中的工作情况。

我希望你在读完定义后对度量有一个基本的了解。我们将在这篇博客中学习更多的知识。但在此之前,让我们逐一记住更多关于K6的关键点。

什么是Grafana k6?

k6,以前被称为负载影响,是一个开源的负载测试工具,可以用来评估API、微服务和网页的性能。你可以使用k6来评估你的系统的可靠性和性能,更早地捕捉到性能退步和问题。为了使性能测试更有效率,我们可以利用度量,复制和显示度量所追踪的内容,以及系统在真实世界场景中的工作情况。

K6中度量的目的是什么,我们为什么需要它们?

这几乎是每个人都有的基本问题,比如我们为什么需要和利用它们,因此,让我们用一句话来定义它" 使用这些矩阵来分析、比较,并在你的测试结果数据中寻找有意义的相关性"。

那么,让我们仔细看看,K6默认会自动收集内置指标。除了内置的指标外,你还可以创建新的指标。

指标的分类

从广义上讲,我们有两种类型的度量。

1.内置指标

当你运行最简单可行的k6测试时,内置指标会输出到stdout。

  import http from 'k6/http';

  import check from 'k6';



export default function () 

let res = http.get ('https://knoldus.keka.com');

console.log (res.status)

check (res, 

'is status 200': (r) => r.status === 200,

);

}

正如你可能已经看到的那样,下面的表格描述了我报告的内置指标,以HTTP、迭代或vu开头的指标在该输出中被内置:

指标名称类型描述
vus衡量标准当前活跃的虚拟用户的数量
检查速率成功检查的次数
vus_max衡量标准测试中可能的最大数量的VU(用于
VU的资源被提前分配,以确保当负载水平增加时,性能不会
。)
迭代次数计数器迭代计数器。VU在测试中执行
脚本的次数(默认函数)。
http_reqs趋势k6总共产生了多少个HTTP请求。
data_sent计数器发送的数据量
收到的数据计数器收到的数据量
http_req_waiting趋势等待远程主机响应的时间
("time to first byte", or "TTFB"). float
http_req_blocked趋势在启动请求之前,花费在阻塞(等待空闲的TCP连接
)上的时间。
迭代时间趋势
函数进行一次完整迭代所需的时间。
http_req_receiving趋势从远程
主机接收响应数据所需的时间。 float
http_req_connecting趋势与远程
主机建立TCP连接所需的时间。
http_req_tls_handshaking趋势与远程主机协商TLS会话所花费的时间

2.自定义指标

你也可以创建你自己的指标,这些指标将在负载测试结束时显示。

在下面的例子中,将创建一个叫做 "等待时间 "的趋势型指标,myTrend变量将被用来在代码中引用它。


import http from 'k6/http';

import { Trend } from 'k6/metrics';

import { check } from 'k6';



const myTrend = new Trend('waiting_time');

export default function () {

    let res = http.get('https://knoldus.keka.com');

    console.log(res.status)

    check(res, {

      'is status 200': (r) => r.status === 200,    

    });

  myTrend.add(res.timings.waiting);

  console.log(myTrend.name); // waiting_time
}console.log 

这篇博客就写到这里。我希望你喜欢并了解了K6中的度量。我们还有本博客的另一部分,请继续关注。如果你需要上述代码,请随时与我们联系:knoldus techub.com

谢谢你!!