性能测试与安全测试入门
功能对了,扛不住流量或漏洞百出也不行。 上线后一促销就慢、就挂;或依赖里爆出严重漏洞、接口没鉴权被爬——这些要靠性能测试和安全测试提前发现。本章入门:性能测试类型(负载、压力、稳定性)、关键指标(响应时间、吞吐量、错误率)、安全测试(OWASP、依赖扫描、渗透测试入门),以及与 CI 的集成。
一、性能测试类型:负载、压力、稳定性
性能测试在可控条件下对系统施加负载,观察响应时间、吞吐量、错误率、资源使用等,判断是否满足预期或找出瓶颈。
负载测试(Load)
在预期或略高于预期的负载下运行,看系统能否稳定达到 SLA(如 P99 响应时间 < 500ms、错误率 < 0.1%)。用于验证「正常流量下是否达标」。
压力测试(Stress)
逐步增加负载直至超过设计容量,观察何时开始变慢、报错、崩溃。用于找「拐点」和上限,为扩容与降级提供依据。
稳定性测试(Soak / Endurance)
在中等负载下长时间运行(如数小时),观察是否有内存泄漏、连接泄漏、性能随时间劣化。用于发现「跑久了才出的问题」。
二、关键指标:响应时间、吞吐量、错误率
性能测试要收集并约定指标,才能判断「过不过」。
响应时间
从请求发出到收到完整响应的时间。常用 P50/P95/P99 分位,避免被少数慢请求掩盖。
吞吐量
单位时间内完成的请求数(QPS/TPS)或事务数。与响应时间、并发数相关。
错误率
失败请求数 / 总请求数。性能测试中常要求 < 0.1% 或 0%;超过阈值即不达标。
资源使用
CPU、内存、连接数、磁盘 I/O 等。用于定位瓶颈与容量规划。
实践中要事先定义「通过标准」:例如「P99 响应时间 < 500ms、错误率 < 0.1%、在 1000 QPS 下稳定运行 10 分钟」。工具如 JMeter、k6、Gatling、Locust 等可发负载并产出报告。
三、安全测试:OWASP、依赖扫描、渗透测试入门
安全测试关注漏洞与风险,常见维度包括:
- OWASP Top 10:OWASP 总结的十大 Web 风险(注入、失效的访问控制、敏感数据泄露、XML 外部实体等)。可据此做清单式检查或自动化扫描(如 SAST/DAST 工具),确保已知大类漏洞有防护。
- 依赖扫描:第三方库常有已知 CVE。用 npm audit、Dependabot、Snyk、OWASP Dependency-Check 等扫描依赖,发现漏洞后升级或替换,并纳入 CI 门禁。
- 渗透测试(Pentest)入门:模拟攻击者从外网或内网探测与利用漏洞。可由安全团队或外部做;自动化程度有限,但能发现配置错误、逻辑漏洞等。入门可先做「自己扫自己」:用 OWASP ZAP、Burp Suite 等对测试环境做简单扫描。
OWASP Top 10注入、访问控制、敏感数据、XXE、失效配置等;做清单与工具扫描
依赖扫描CVE、已知漏洞库;npm audit、Dependabot、Snyk 等,CI 中阻断高危
SAST静态代码安全分析,不运行即可查潜在漏洞模式
DAST动态扫描运行中应用,模拟请求探测漏洞
渗透测试人工或半自动模拟攻击,发现逻辑与配置类问题
四、与 CI 的集成
性能与安全都不应只在发布前「突击」一次,而应内建到流水线:
性能与安全在 CI 中的常见做法
- 性能:每次 PR 或每日跑轻量负载测试(短时、低并发),发现明显回退即告警;完整负载/压力测试可在发布前或定时任务跑,结果与基线对比。
- 依赖扫描:每次构建跑依赖扫描,高危 CVE 不修复则阻断合并或发布;中低危可告警并限期处理。
- SAST:代码提交时跑静态安全扫描,发现高危规则即失败或需人工确认。
- 门禁与预警:区分「阻断」(必须过才能合并/发布)与「预警」(失败要查但不挡),避免因偶发 flaky 或环境问题长期红屏。
一句话: 性能测试分负载(验证达标)、压力(找拐点)、稳定性(长时间看劣化);关键指标有响应时间、吞吐量、错误率、资源使用。安全测试包括 OWASP 清单、依赖扫描(CVE)、SAST/DAST、渗透入门;分层覆盖代码、依赖、运行。CI 集成:依赖扫描与 SAST 可门禁,性能与安全测试常态化,门禁与预警分清。
小贴士: 依赖扫描报出一堆 CVE 时,优先修「可直接被利用」或「已有公开利用」的;暂时修不了的可用 suppression 或升级计划跟踪,避免扫描结果被忽略。
五、小结
性能测试类型:负载(达标)、压力(拐点)、稳定性(长时间)。指标:响应时间(P50/P95/P99)、吞吐量、错误率、资源。安全测试:OWASP Top 10、依赖扫描、SAST、DAST、渗透入门;代码·依赖·运行多层覆盖。CI:依赖扫描与 SAST 可门禁,性能与安全常态化,门禁与预警区分。下一章讲缺陷管理、根因分析与持续改进,把问题从发现到闭环、从单次修复到过程改进说细。