用 k6 对“http_req_duration”的偏差进行阈值化?
Posted
技术标签:
【中文标题】用 k6 对“http_req_duration”的偏差进行阈值化?【英文标题】:Thresholding the deviation in `http_req_duration` with k6? 【发布时间】:2020-03-30 22:46:00 【问题描述】:我想使用k6
创建一个自定义指标,用于对服务进行负载测试。我想测量旧版本(代码更改之前)和新版本(代码更改)之间的http_req_duration
之间的偏差,并对差异设置一个阈值。可以在k6
做吗?如果是,我应该怎么做?
【问题讨论】:
【参考方案1】:使用下面的代码:
import http from "k6/http";
import Trend from "k6/metrics";
var diffT = new Trend("DiffTrend", true); // this true is just so in the summary it shows them as times
var oldURL = "https://test.loadimpact.com";
var newURL = "https://test.k6.io";
export default function()
// you can use http.get, but this way the two requests will be done at the same time which will save time and probably be a better comparison
var res = http.batch([
["GET", oldURL, null, "tags": "varaint": "old"],
["GET", newURL, null, "tags": "varaint": "new"],
])
diffT.add(res[0].timings.duration - res[1].timings.duration);
您可以通过两种不同的方式使用它:
使用可能是最简单的 diffT 指标,但我认为除了最简单的情况外,它不会有任何好处,因为它只处理请求差异的请求,而不是整体情况......但是你将 10 个请求区分到同一个 API,这可能已经足够了。
您可以使用标签“variant”来区分和比较新旧请求之间的每个和所有请求的任何指标。这是 IMO 更好的方法,使用 Grafana 会更强大,并为您提供更好的画面。
【讨论】:
以上是关于用 k6 对“http_req_duration”的偏差进行阈值化?的主要内容,如果未能解决你的问题,请参考以下文章