页面数量跨过某个门槛后,手工逐页测速会从“可靠”变成“不可靠”:样本覆盖不全、复测时间不一致、结论无法回溯。判断标准不是页面总数,而是“同一类页面是否出现多种实现、是否由不同人维护、是否需要在每次发布后重复验证”。只要满足其中两条,手工测试就该让位给脚本化流程。
假设一个站点最初只有 40 个页面,模板统一,编辑每次改版后手动打开首页、分类页、详情页各一个,用浏览器开发者工具看加载时间,记在表格里。这套做法在小规模下成立,因为页面之间的差异小,一个样本能代表一整类。
当站点扩展到 1200 页,问题开始出现:详情页由三套不同模板生成,图片来自两个不同的存储位置,部分页面嵌入了第三方组件。此时再手工测三个样本,测到的只是“最干净的那一版”,另外两套模板的问题不会被发现。更麻烦的是,每次发布后要重复这套动作,人力成本随发布频率线性上升,而覆盖度反而下降。
这个情境的关键不是“页面变多了”,而是“同类页面不再同质”。手工测试的隐含前提是样本可代表整体,一旦这个前提被打破,继续手工做就是在一个错误假设上投入时间。
以下三类工作,在规模化后手工做的边际价值会迅速下降:
反过来,以下工作仍适合手工做,不要急着自动化:首次探索一个新页面的性能瓶颈、判断某个第三方组件的实际体验、确认一个异常是否只在特定设备或网络下出现。这些任务依赖人的判断,脚本只能执行预设动作。
在决定是否脚本化之前,先做一件事:把站点页面按“生成方式 + 主要资源来源”分组。假设分完后得到 6 组,其中 3 组各有超过 100 个页面,另外 3 组各不到 20 个。
这个分组结果直接决定下一步:页面多且同质的那 3 组,适合固定样本、脚本批量测、结果存档;页面少或差异大的那 3 组,继续手工测更划算,因为写脚本和维护脚本的成本可能高于手工。分组不是一次性工作,模板改版后需要重新核对,否则脚本测的可能是一套已经不存在的页面结构。
这个动作的结果会影响后续决策:如果分组后发现某一组页面数量虽多但访问量极低,那么优先测的是“数量 × 访问占比”高的组,而不是页面数最多的组。性能测试的资源应该跟着用户实际到达的页面走。
脚本能稳定输出数字,但不能替你判断数字是否重要。例如脚本报告某类页面首屏时间从 1.8 秒变成 2.3 秒,这个变化是否值得处理,取决于这类页面的访问占比、用户在该页面的下一步动作、以及变化是否来自一次有意的功能增加。
另一个边界是:脚本测的是“加载”,不是“用户是否找到内容”。一个页面加载很快但主要内容需要点击展开,脚本不会报告这个问题。抓取、索引和排名是不同环节,性能测试只覆盖其中一部分体验信号,不能把加载数字直接当成获取效果的结论。
因此合理的分工是:脚本负责重复、覆盖和对比,人负责定义样本、解释异常、决定是否值得改。把脚本结果直接当成“必须优化”的清单,会把时间花在数字波动上,而不是用户能感知的问题上。
保留一个手工环节:每次大改版后,由一个人用真实设备、真实网络打开关键路径上的几个页面,记录主观感受和脚本没覆盖到的异常。这个环节的价值不在于数字,而在于发现“脚本没测但用户会遇到”的问题,比如弹窗遮挡、按钮点不到、内容加载顺序错乱。
这个手工环节的样本要少而固定,并且和脚本结果对照看。如果手工发现的问题脚本完全没有反映,说明脚本的测试项需要补充;如果手工感受和脚本数字长期一致,说明脚本的覆盖是可信的。到这里,网站性能测试的分工才算稳定下来:脚本管重复和覆盖,人管定义和判断。