K6 测试 - 包含时间戳的摘要输出

问题描述 投票:0回答:1

我有一个正在运行多个场景的 K6 测试。我想将测试摘要导出到 Elastic,并作为其中的一部分,希望包括测试运行的开始和结束时间。我试图在我的默认函数中设置这些值,但当我到达 handleSummary() 方法时,这些值不会粘住。

`let startTime;
export default function () {
.. all scenarios and at the end i have a check
    if (!startTime){
        startTime = exec.scenario.startTime;
    }
}`

export async function handleSummary(data) { console.log("Start Time", startTime); }

在我的handleSummary 方法中,startTime 未定义。以前有人尝试过这个吗?有没有更好/更简单的方法在摘要方法中获取此信息?

提前谢谢您!

javascript function time performance-testing k6
1个回答
0
投票

每个k6 VU(虚拟用户)都是独立的,两个VU之间不能共享数据。每个 VU 都会完全解析您的测试脚本文件,执行您的 init context 中的任何代码(导出函数之外的部分),然后重复执行您的测试函数。 您可以将

setup
teardown
handleSummary
生命周期函数视为“特殊 VU”:它们不与任何其他 VU 共享数据或状态,但有些可以返回数据,有些可以作为函数接收数据参数。

不幸的是,场景的开始时间在传递给

handleSummary
的对象中不可用。它仅包含
state.testRunDurationMs
,可用于计算测试的大致开始时间(请注意,不是每种情况)。

© www.soinside.com 2019 - 2024. All rights reserved.