1. 课程导论与平台概览

1.1 容量压测的重要性

在互联网业务高速迭代的今天,系统稳定性直接关系到用户体验与商业收入。容量压测(Capacity Load Testing)是保障系统在高并发、高负载场景下仍能正常运行的唯一有效手段。通过模拟真实用户流量,提前发现性能瓶颈、评估系统容量水位,避免线上故障。

核心价值: 容量压测不是“测不测”的问题,而是“什么时候测、怎么测、测多准”的问题。一次成功的压测可以避免数小时的线上宕机与数百万的营收损失。
维度 说明 典型场景
稳定性验证 验证系统在峰值流量下是否崩溃 双11、秒杀、大促
容量规划 确定当前架构能支撑的最大并发 新服务上线、扩缩容决策
性能调优 定位慢SQL、高CPU、内存泄漏 版本迭代、架构升级
SLA保障 确保响应时间、错误率达标 金融交易、实时通信

1.2 k6 简介

k6 是一款由 Grafana 开源的现代化负载测试工具,采用 Go 语言开发核心引擎,使用 JavaScript 编写测试脚本。它具备轻量、高性能、可编程、云原生等特性,已成为业界压测脚本开发的首选工具之一。

  • 脚本语言: JavaScript(ES6+),学习成本低,生态丰富
  • 执行引擎: Go 编写,单机可模拟数万虚拟用户(VU)
  • 指标内置: 自动采集请求速率、延迟、错误率、吞吐量
  • 分布式支持: 原生支持 k6-operator 与 Kubernetes 集群执行
  • 可观测性: 支持 Prometheus、InfluxDB、Datadog 等输出
为什么选择 k6? 相比 JMeter 的 GUI 配置方式,k6 采用代码即脚本(Code as Script)模式,天然适合 CI/CD 流水线集成,且资源消耗极低,单机压测能力远超传统工具。

1.3 作业平台整体架构

本课程构建的《容量压测作业平台》是一套面向企业级的一站式压测解决方案,覆盖脚本开发、任务调度、分布式执行、实时监控与报告分析全流程。平台整体采用微服务架构,核心组件如下:

容量压测作业平台整体架构 Web UI / CLI 用户入口 核心服务层 脚本管理服务 任务调度服务 报告聚合服务 分布式执行层(Kubernetes / 裸机) k6 Worker 1 k6 Worker 2 k6 Worker N k6-operator 数据存储层 InfluxDB / Prometheus MySQL / Redis 对象存储(报告)
架构要点: 平台通过 k6-operator 在 Kubernetes 集群中动态拉起多个 k6 Worker 实例,实现分布式压测。脚本管理服务支持版本管理与在线编辑,任务调度服务负责并发控制与资源分配,报告聚合服务实时汇总各 Worker 的指标数据。

1.4 课程目标与学习路径

本课程面向具备一定编程基础(JavaScript 基础即可)的测试开发工程师、SRE 与后端开发者,旨在帮助学员从零构建一套可落地的容量压测作业平台。课程共 30 章,分为四大阶段:

阶段 章节范围 核心产出
基础入门 第 1-5 章 掌握 k6 脚本语法、生命周期、指标采集
脚本开发 第 6-15 章 编写复杂业务脚本、数据驱动、断言、阈值
平台构建 第 16-25 章 搭建 Web 作业平台、集成 k6-operator、分布式执行
实战进阶 第 26-30 章 CI/CD 集成、大规模压测、报告可视化、性能调优
课程学习路径 基础入门 脚本开发 平台构建 实战进阶 k6 语法 / 生命周期 复杂脚本 / 数据驱动 Web 平台 / 分布式 CI/CD / 调优 预计学习周期:8-12 周(每周 2-3 章)
前置要求: 建议学员提前熟悉 JavaScript 基本语法(变量、函数、Promise)、HTTP 协议基础(请求/响应模型)、以及 Docker 与 Kubernetes 的基本概念。课程中会提供必要的环境搭建指南。

1.5 本章小结