javascript - 用于创建和填充 k6 指标的函数

标签 javascript load-testing k6

我正在尝试在 js 中为 k6 工具脚本创建一个函数,这将使我能够为“交易名称”创建多种类型的指标作为输入,然后创建另一个函数来填充这些指标。这将有助于避免为不同的事务名称编写类似的代码,并有助于保持指标名称的一致性。

// line of code to define the metrics
let Search_RT_Trend = new Trend("Search_duration");
let Search_PassRate = new Rate("Search_PassRate");
let Search_PassCount = new Counter("Search_PassCount");
let Search_FailCount = new Counter("Search_FailCount");

// line of code populating the data in metrics
Search_RT_Trend.add(res.timings.duration);
Search_PassRate.add(1);
Search_PassCount.add(1);
Search_FailCount.add(1);

希望创建两个函数来接受交易名称的输入,可能如下:

CreateMetric ("Search") 

PopulateMetric ("Search")

如何实现这一点?

最佳答案

类似这样的吗?

function MetaMetric(name) {
    this.RT_Trend = new Trend(`${name}_duration`);
    this.PassRate = new Rate(`${name}_PassRate`);
    this.PassCount = new Counter(`${name}_PassCount`);
    this.FailCount = new Counter(`${name}_FailCount`);
}

MetaMetric.prototype.track = function (req) {
    this.RT_Trend.add(req.timings.duration);
    if (req.timings.duration < 200 /* or whatever */) {
        this.PassRate.add(1);
        this.PassCount.add(1);
    } else {
        this.PassRate.add(0);
        this.FailCount.add(1);
    }
};

let myMetaMetric = new MetaMetric("Search")

export default function () {
    let resp = http.get("https://httpbin.test.loadimpact.com/");
    myMetaMetric.track(resp);
    sleep(3 * Math.random());
}

需要考虑的一些事项:

  • 当您拥有Rate 指标时,您就不需要通过和失败Counter 指标。 比率本质上是通过与失败之间的比率,所以它基本上是这两个计数器的组合:)
  • 您可能会找到 k6 checksthresholds有用。

关于javascript - 用于创建和填充 k6 指标的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57214244/

相关文章:

javascript - AudioContext 不允许在 ToneJS (Chrome) 中启动

performance - 使用多个浏览器和版本测试站点性能

performance - Jmeter 缓存管理器 - 空异常

node.js - 用于负载测试的多个 websocket 连接

javascript - k6/VU 之间共享状态的每个 VU 线程中的唯一数据

javascript - 功能未定义。基本程序

javascript - 否定前瞻混淆

javascript - 恒定负载(每秒 x 个新请求)

gitlab-ci - 在 GitLab CI 上执行 K6 脚本的建议配置

javascript - 如何使用 Lodash 删除对象数组中的某些元素