菜单
开源

固定 VU

使用 constant-vus 执行器,固定数量的 VU 在指定时间内尽可能多地执行迭代。

作为此执行器的快捷方式,请使用 VUsduration 选项。

选项

除了通用配置选项外,此执行器还有以下选项

选项类型描述默认值
duration(必填)字符串场景总持续时间(不包含 gracefulStop)。-
vus整数并发运行的 VU 数量。1

何时使用

如果您需要特定数量的 VU 在一定时间内运行,请使用此执行器。

示例

此示例安排 10 个 VU 持续运行 30 秒。

JavaScript
import http from 'k6/http';
import { sleep } from 'k6';

export const options = {
  discardResponseBodies: true,
  scenarios: {
    contacts: {
      executor: 'constant-vus',
      vus: 10,
      duration: '30s',
    },
  },
};

export default function () {
  http.get('https://test.k6.io/contacts.php');
  // Injecting sleep
  // Total iteration time is sleep + time to finish request.
  sleep(0.5);
}

观察

以下图表展示了示例脚本的性能

Constant VUs

根据我们的测试场景输入和结果

  • VU 数量固定为 10 个,并在测试开始前初始化;
  • 测试总持续时间固定为配置的 30 秒;
  • default 函数的每次迭代预计大约需要 515 毫秒,即约 2 次/秒;
  • 因此,最大吞吐量(最高效率)预计约为 20 次迭代/秒,即 2 次迭代/秒 * 10 个 VU;
  • 我们看到在测试的大部分时间内达到了并保持了最大吞吐量;
  • 因此,总共执行了大约 600 次迭代,即 30 秒 * 20 次迭代/秒。