菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow 使用 k6breadcrumb arrow 执行上下文变量
开源

执行上下文变量

在某些情况下,获取有关脚本当前测试执行状态的信息非常有用。例如,您可能希望

  • 让不同的虚拟用户 (VU) 运行不同的测试逻辑
  • 为每个虚拟用户和迭代使用不同的数据
  • 弄清楚测试处于哪个阶段

为了解决这些问题,您可以使用*执行上下文变量*。

k6/execution

k6/execution 模块公开了当前执行状态的详细信息,例如*当前执行的场景名称*、*当前活跃的虚拟用户数量*等。该模块通过三个属性提供测试执行信息

属性有关以下方面的元信息和执行详情
instance当前运行的 k6 实例
scenario当前运行的场景
vu当前虚拟用户和迭代

示例:记录所有上下文变量

如果您想在测试运行时了解每个上下文变量的样子,可以将此模板字面量复制到您的测试脚本中。

请注意,此处省略了 abort 变量,因为该函数会中止测试。

JavaScript
import exec from 'k6/execution';

export default function () {
  console.log(`Execution context

Instance info
-------------
Vus active: ${exec.instance.vusActive}
Iterations completed: ${exec.instance.iterationsCompleted}
Iterations interrupted:  ${exec.instance.iterationsInterrupted}
Iterations completed:  ${exec.instance.iterationsCompleted}
Iterations active:  ${exec.instance.vusActive}
Initialized vus:  ${exec.instance.vusInitialized}
Time passed from start of run(ms):  ${exec.instance.currentTestRunDuration}

Scenario info
-------------
Name of the running scenario: ${exec.scenario.name}
Executor type: ${exec.scenario.executor}
Scenario start timestamp: ${exec.scenario.startTime}
Percenatage complete: ${exec.scenario.progress}
Iteration in instance: ${exec.scenario.iterationInInstance}
Iteration in test: ${exec.scenario.iterationInTest}

Test info
---------
All test options: ${exec.test.options}

VU info
-------
Iteration id: ${exec.vu.iterationInInstance}
Iteration in scenario: ${exec.vu.iterationInScenario}
VU ID in instance: ${exec.vu.idInInstance}
VU ID in test: ${exec.vu.idInTest}
VU tags: ${exec.vu.tags}`);
}

有关详细参考,请参阅k6/execution 模块

其他示例

Grafana Cloud k6 上下文变量

Grafana Cloud k6 会向正在运行的云测试注入额外的上下文变量。这些变量提供有关服务器 (K6_CLOUDRUN_INSTANCE_ID)、负载区域 (K6_CLOUDRUN_LOAD_ZONE)、实例 ID (K6_CLOUDRUN_INSTANCE_ID) 和云分发 (K6_CLOUDRUN_DISTRIBUTION) 的信息。

有关更多详细信息,请参阅云执行上下文变量