自动化测试、性能测试、安全测试

接入与开发

给测试初学者的速查:自动化、性能、安全三类测试各解决什么问题,什么场景该上哪一种,先做哪一步。

刚接手测试的人常卡在同一个地方:需求说要「测一下」,但到底是写脚本回归、压一遍接口,还是查权限和注入,完全没概念。更麻烦的是三类测试的目标、工具和产出物都不一样,混着做既费力又说不清结果。这篇按「解决什么问题、什么时候该上、不用它的场景」把三者拆开对照,最后给一个按项目阶段排的落地顺序。

刚接测试的人最常卡在一句话上:需求说「测一下」,但到底该写脚本回归、压一遍接口,还是查权限和注入,脑子里没有分类。这三类测试的差别其实不在工具,而在它们回答的问题根本不一样。

自动化回答「同样的流程能不能不用人再跑一遍」,性能回答「人多起来扛不扛得住」,安全回答「规则会不会被人绕过去」。目标不同,评判标准、产出物、什么时候上都不一样。混着做,最后既说不清结果,也说不清哪一步该先做。

三类测试到底在解决什么问题

自动化测试
把稳定、要反复验证的流程交给脚本跑,人只看失败项,省的是重复劳动不是新问题
性能测试
看并发下的响应时间、错误率、资源占用,答案是分档的,不是简单通过或不通过
安全测试
从对抗角度看鉴权、越权、参数注入、敏感信息泄露,评判标准跟前面两类不是一套

先记住一条:自动化不会替你发现全新问题。它只保证你已经知道对的地方,下次改代码时还是对的。指望靠脚本找出没想过的边界情况,方向就错了。性能和安全反过来,它们的主要价值恰恰是暴露你没预料到的情况。

什么时候该上哪一类:一张对照表

场景特征先上哪一类为什么
需求频繁变、界面还在大改都先别上,手工为主脚本维护成本会超过手工回归
有对外接口、有并发预期性能基线测量先量延迟和吞吐,再定优化目标
涉及登录、支付、他人数据安全优先于性能先堵越权,再谈快不快
一次性活动页、即将下线模块测主路径就够投入产出比不划算

有并发预期时,第一步不是直接调大压力,而是先量基线。到 接口测速(/tools/speed-test) 看当时的延迟和吞吐数字,把它当作后续对比的起点,否则你没法判断优化有没有效果。

  • 需求还在天天改:先别上自动化,等主流程稳定,否则脚本改的时间比手工测还长
  • 有登录、支付、后台管理:安全用例优先,越权问题比慢几百毫秒严重得多
  • 要上线对外接口:先做性能基线,再排优化项,别凭感觉说「有点慢」
  • 纯文案改动、临时页面:手工走一遍主要路径,不建议铺三类测试

落地顺序:先做什么、后做什么

  1. 第一步:手工走通主流程把稳定的操作步骤逐条记下来,包括输入、预期结果、异常提示。这套步骤既是自动化脚本的输入,也是性能脚本的基础,没有它就无从写脚本。
  2. 第二步:按业务风险排自动化挑出错代价最高的几条先自动化,比如登录、下单、数据提交。跑通一条再补下一条,不要一上来追求覆盖率数字。
  3. 第三步:功能稳定后再压接口压之前先确认限流和超时阈值,再分档加压。口径不清楚容易误判,可以到 基础设施术语速查(/ai-dict/category/infra) 对齐定义。
  4. 第四步:补安全用例从越权和输入校验入手,每轮发版前跑固定的几条。不做全面渗透,那是另一套工作量和授权流程。

顺序的核心逻辑是:手工步骤没固化成文档,后面两类测试都没有可信输入。很多团队跳过第一步,结果脚本写出来跟实际业务对不上,压出来的数字也不知道在压什么。

各类测试该产出什么才算没白做

测试类型合格产出物不合格的信号
自动化无人值守跑完并给出失败清单,失败能定位到具体步骤只报错退出,看不出哪一步挂了
性能分档数据:正常量、峰值量、超限量的响应与错误率,以及瓶颈层只给一个「通过」或「有点慢」
安全带复现步骤的问题清单,写清影响范围和修复建议没复现路径的问题描述

三类测试都要留版本对应关系:这一轮测的是哪个代码版本、哪套环境配置。否则下一轮结果不一致时,你分不清是代码变了还是环境变了,排查会拖很久。

安全测试还有一点常被忽略:能不能做、做到什么程度,取决于有没有授权。没拿到书面范围就上手扫,本身就是风险。初学者先从自己负责的模块和只读检查入手,别越界。

  • 自动化脚本跑完后,先看失败清单再看日志,别反过来
  • 性能数据要跟上一轮基线对比,单次数字没有意义
  • 安全问题每条都要有复现步骤,不能复现的不算问题
  • 三类产出物都标注代码版本和环境,方便下次对齐
下一步三类测试的工具和口径在站内有现成资料,先对照自己的项目确认该从哪一类入手,再去找对应工具。想去看看可以到 接口测速(/tools/speed-test) 先量一次基线,心里有个数。

常见问题

一个人做测试,三类都要会吗?

不用同时精。先按业务风险排序:没有对外接口和并发压力的项目,把自动化跑顺就够用;有用户数据和登录体系,就把安全用例补上。性能测试通常等项目有明确并发预期再深入,否则容易做出没人看的报告。

自动化测试能替掉手工测试吗?

替不掉。自动化擅长的是「同样的流程反复跑」,判断界面好不好看、流程顺不顺、异常提示是否清楚这些事还是得人来做。比较实际的分工是手工先探路并写清步骤,稳定之后把其中重复度最高的那几条交给脚本。

性能测试和压力测试是一回事吗?

说法上常混用,实操里区分的是目的:一类是测出系统在预期负载下的表现,另一类是不断加量找崩溃点。做之前先明确你要的是哪个答案,否则参数设错,跑出来的数字没法解释,也没法指导优化。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。