使用 k6 探索现代负载测试 - QA 的实践之旅

现代 QA 性能测试的 k6 负载测试指南《使用 k6 探索现代负载测试 – QA 的实践之旅》一文首先出现在 Spritle 软件上。

来源:Spritle 博客

简介

虽然当今许多测试人员都在探索 AI 工具,但我专注于了解应用程序在真实负载条件下的行为方式。

作为一名 QA 工程师,我的重点主要是功能测试。但有一个重要的问题始终萦绕在我的脑海中:

  • 当多个用户同时访问系统时会发生什么?
  • 应用程序还会快速响应吗?
  • 还是会在压力下失败?
  • 为了回答这些问题,我开始使用 k6,这是一种现代的轻量级负载测试工具。

    为什么负载测试很重要

    功能测试答案:

    该功能有效吗?

    但是性能测试答案:

    在负载下它还能工作吗?

    在现实系统中,性能直接影响用户体验。

    这就是为什么负载测试不是可选的,而是必不可少的。

    k6 入门

    我从一个简单的脚本开始:

    import { check, sleep } from 'k6';

    导出常量选项= {

    vus: 50, // 50个虚拟用户

    period: '15s', // 运行 15 秒

    };

  • 导出默认函数 () {
  • // 模拟添加员工请求
  • 常量资源 = { 状态:201 }; // 模拟成功
  • check(res, { '员工添加(模拟)': (r) => r.status === 201 });
  • 睡眠(1);

    }

    只需几行代码,我就能够模拟多个用户同时访问一个应用程序。

    运行测试

  • k6 运行测试.js
  • k6 直接从命令行运行并立即开始生成负载。
  • 了解结果

    k6 提供关键性能指标:

    响应时间(P95、P99)→ 真实的用户体验

    错误率→ 执行期间失败

  • 每秒请求数 (RPS)→ 吞吐量
  • 虚拟用户 (VU)→ 负载模拟
  • 这些指标有助于评估应用程序的稳定性和可扩展性。

    我面临的真正挑战

    演示应用程序限制测试演示应用程序时:某些操作被阻止API 行为不一致学习:演示环境并不总是可靠的。UI 与 API 测试基于 UI 的负载测试是:切换到提供的 API 测试:执行速度更快更准确的结果学习:API级别的测试更可靠。我的看法:但是: