菜单
开源

冒烟测试

冒烟测试的负载最小。运行冒烟测试可以验证系统在最小负载下的工作状态,并收集基线性能值。

此类测试使用少量虚拟用户 (VU) 运行,通常小于 5 个 VU,超过 5 个 VU 可视为小型负载测试。

类似地,测试执行时间应较短,要么迭代次数较少 (迭代),要么持续时间 (持续时间) 从几秒到最多几分钟。

Overview of a smoke test

在某些测试语境中,冒烟测试也称为初检测试。

何时运行冒烟测试

每当创建或更新测试脚本时,团队都应运行冒烟测试。相关应用程序代码更新时,也应进行冒烟测试。

将冒烟测试作为第一步是一个好的实践,其目标如下:

  • 验证您的测试脚本没有错误。
  • 验证您的系统在最小负载下没有抛出任何错误(性能或系统相关)。
  • 收集您的系统在最小负载下的基线性能指标。
  • 使用简单的逻辑,作为合成测试,监控生产环境的性能和可用性。

注意事项

准备冒烟测试时,请考虑以下事项:

  • 每次创建或更新脚本时,运行冒烟测试

    由于冒烟测试用于验证测试脚本,因此每次创建或更新脚本时都应运行一次。避免使用未经测试的脚本运行其他测试类型。

  • 保持吞吐量小,持续时间短

    将您的测试脚本配置为由少量 VU(2 到 20 个)执行,迭代次数少或持续时间短(30 秒到 3 分钟)。

在 k6 中进行冒烟测试

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

export const options = {
  vus: 3, // Key for Smoke test. Keep it at 2, 3, max 5 VUs
  duration: '1m', // This can be shorter or just a few iterations
};

export default () => {
  const urlRes = http.get('https://quickpizza.grafana.com');
  sleep(1);
  // MORE STEPS
  // Here you can have more steps or complex script
  // Step1
  // Step2
  // etc.
};

以下脚本是一个冒烟测试示例。您可以复制它,更改端点,然后开始测试。有关更全面的测试逻辑,请参阅示例。冒烟测试的 VU 图表应与此类似。

The shape of the smoke test as configured in the preceding script

结果分析

冒烟测试首先验证您的脚本是否无误运行。如果出现任何与脚本相关的错误,请先更正脚本,然后再尝试任何更广泛的测试。

另一方面,如果您注意到在这些低 VU 数下性能不佳,请报告问题,修复您的环境,然后在进行任何进一步测试之前再次尝试冒烟测试。

一旦您的冒烟测试显示零错误且性能结果看起来可以接受,您就可以继续进行其他测试类型了。