首页 > 解决方案 > In K6 - 如何在单个脚本中打破单个事务的 TPS

问题描述

我想在单个脚本中的不同 API 调用中实现不同的 TPS 集。

目前我正在使用阶段、minIterationDuration 和睡眠功能来进行思考。然而,在 API 级别使用不同的思考时间集无助于实现各种 TPS。已经有 --rps 参数,但它在 API 中均匀分配 tps

下面是我的示例代码,

    export default function()
    {
        group("T01_API1", function1.function);  // Example: 50 TPS for API 1
        group("T02_API2", function2.function);sleep(2); // Example: 100 TPS for API 2
        group("T03_API3", function3.function);sleep(2); // Example: 20 TPS for API 3
    }

阶段:

{
       "minIterationDuration":"4s",
       "stages": [
              { "duration": "15s", "target":15}, // Ramp Up
              { "duration": "1h", "target":15}, // Steady State


           { "duration": "10s", "target": 0} // Ramp down 
    ]
}

请注意上面是使用的示例代码,而不是整个脚本,由于系统限制,我无法执行 K6 的多个实例,我需要在单个脚本文件中进行控制。让我知道你的想法

标签: performance-testingk6

解决方案


新的 k6 v0.27.0 具有到达率执行器(设置每秒迭代次数,即 TPS),并支持多种场景(每个场景可以有不同的 TPS)。请参阅https://github.com/loadimpact/k6/releases/tag/v0.27.0https://k6.io/docs/using-k6/scenarios/中的示例


推荐阅读