先判断差异来自“页面环境”还是“组件自身”:如果同一组件在A页面正常、在B页面异常,而两页引用的组件版本和参数一致,那么优先怀疑B页面的容器宽度、父级样式、脚本加载顺序或数据形态,而不是组件代码本身。验收样例要围绕这些变量成对构造,而不是把B页面整页复制一遍。
有主题或模板文件编辑权限时,可以构造“最小差异页”:复制A页面,只替换一个变量,逐次逼近B页面的表现。没有权限、只能在后台新建内容页时,改用“参数对照”方式,在同一模板下建立多个内容条目,只改变传入组件的数据或区块顺序。
两种条件的共同点是:一次只动一个变量,并记录动之前的表现。区别在于前者能控制容器和加载顺序,后者只能控制数据与排布。若连新建页面都不允许,最小动作是把B页面出问题的区域截图、记录浏览器控制台报错和请求失败项,再与A页面对比——这能缩小范围,但不能证明根因,因为控制台无报错也可能只是样式被覆盖。
很多“同组件不同表现”其实是版本或参数不同。验收前先确认两页引用的是同一份资源:组件文件路径、构建产物哈希、CDN缓存键是否一致。若使用包管理,锁定版本号写进验收记录,例如 component@1.4.2,不要写“最新版”。
参数层面,把传入组件的配置逐项列出并标注两页取值。假设某轮播组件在首页显示3项、在列表页显示5项,那么“显示数量”就是第一个待验证变量。假设两页参数完全相同却仍不同,才把注意力转向容器。
display、字体大小和脚本加载位置。这个动作的结果直接决定下一步:复现成功就把该变量写进验收项,要求在所有使用该组件的页面统一约束;复现失败则说明异常可能来自多个变量叠加,需要做组合对照,而不是继续单变量试错。
同一组件在空数据、单条数据、超长文本下的表现可能完全不同。验收样例应包含至少三组数据:正常长度、极短、极长。极长文本用于观察换行与溢出,极短用于观察占位与对齐。
加载时序方面,若组件依赖异步数据,B页面可能因为请求返回更晚而出现布局跳动。此时可在验收记录中注明“数据返回前”和“数据返回后”两种状态,分别截图。需要说明的是,请求变慢或控制台出现一次失败,不能单独证明组件有缺陷,也可能是网络波动或第三方接口临时不可用。
如果测试环境始终正常、线上才异常,先核对两边的资源版本、缓存策略和登录态,而不是直接判定为环境玄学。可执行的下一步是:在线上页面用浏览器开发者工具查看实际加载的组件文件与测试环境是否一致。若一致仍异常,则把差异范围缩小到用户数据或权限分支,并请有权限的人在受控条件下复现。若始终无法复现,验收结论只能写“未复现”,不能写成“已修复”。