You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

k6chaijs能否搭配async函数?k6浏览器测试输出顺序异常求助

k6 Browser模块结合k6chaijs时输出顺序异常问题

问题现象

在k6 Browser模块中使用k6chaijs时,describe的分组文本会出现在断言失败信息之后,输出顺序不符合预期。

示例代码:

export default () => {
    describe('New page verifier', async () => {
        const page = await browser.newPage();
        try {
            expect(page, "page").to.be.null;
        } finally {
            await page.close();
        }
    })
}

执行输出:

✗ expected page to be null
      ↳  0% — ✓ 0 / ✗ 1

     █ New page verifier

   ✗ checks...............: 0.00% ✓ 0        ✗ 1  
     data_received........: 0 B   0 B/s
     data_sent............: 0 B   0 B/s

原因分析

k6的Mocha风格接口中,describe仅作为测试分组容器,本身不负责执行测试逻辑。当直接在describe的异步回调中编写测试代码时,回调的执行时机导致断言输出先于分组标题的打印,从而出现顺序颠倒的情况。

解决方案

将测试逻辑包裹在test(或it)块中,describe仅用于分组组织,这样k6会先输出分组标题,再执行测试用例并输出断言结果:

export default () => {
    describe('New page verifier', () => {
        test('Verify page state', async () => {
            const page = await browser.newPage();
            try {
                expect(page, "page").to.be.null;
            } finally {
                await page.close();
            }
        });
    });
}

调整后,输出顺序会变为符合预期的形式:

█ New page verifier
       ✗ Verify page state
        ↳  0% — ✓ 0 / ✗ 1
     ✗ expected page to be null

   ✗ checks...............: 0.00% ✓ 0        ✗ 1  
     data_received........: 0 B   0 B/s
     data_sent............: 0 B   0 B/s

内容的提问来源于stack exchange,提问作者user2860204

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:05:54