如何为Percy的基准分支手动上传基线截图
Percy基准分支基线快照手动上传方案(React Native + Detox 场景)
Percy没有单独针对基准分支的专属上传接口,所有分支的快照上传逻辑完全一致,基准分支的基线本质是该分支下经人工审核通过的快照版本,按以下流程操作即可完成develop分支基线初始化,支持按需调整快照内容,无需依赖Storybook。
前置准备
- 本地切到
develop分支,拉取最新已合入的正式代码,确保代码版本和你要设定的基准版本一致 - 在本地环境配置项目对应的Percy权限凭证:设置环境变量
PERCY_TOKEN为项目的读写token,和Detox自动化测试所用的token保持一致
生成待上传的基线截图
两种方式可自由选择,均支持按需调整快照内容:
- 依赖Detox用例自动生成:直接执行全量Detox视觉测试用例,
@percy/detoxSDK会自动收集测试过程中触发的截图,暂存在本地临时目录,无需手动导出 - 自定义准备截图:如果需要调整基线内容(比如替换测试环境生成的带脏数据的截图、补充自动化用例未覆盖的页面),可以自行准备符合预期的PNG格式截图,按页面/场景命名后统一放到单独目录即可
上传快照到develop分支
上传时通过环境变量指定目标分支为develop即可,用通用上传命令就能完成,不需要特殊参数:
- 用Detox自动生成的截图时,执行以下命令:
# iOS端示例 PERCY_BRANCH=develop npx percy exec -- detox test -c ios.sim.release # 安卓端替换为对应的Detox安卓配置即可
- 用自定义准备的截图时,执行percy原生上传命令:
PERCY_BRANCH=develop npx percy upload ./path-to-your-custom-screenshots
如果你的Percy项目后台配置的默认基准分支不是
develop,把上述命令里的分支名替换为实际配置的基准分支名即可
完成基线设置
- 上传完成后进入Percy项目的构建列表,找到刚才上传到develop分支的对应构建
- 逐张核对所有快照内容,确认符合基准预期后,点击全量通过按钮审核完成
- 审核通过的快照会自动成为develop分支的正式基线,后续其他分支提交PR执行Detox视觉测试时,会自动拉取这批快照做比对,不会再出现无基线导致的比对失败问题
后续基线调整
如果需要更新基线内容,重复上述流程即可:切到develop分支,上传调整后的新快照,审核通过后新快照会自动替换旧版本成为最新基线。
如果项目配置了develop分支保护,不允许直接上传构建,可以先把快照上传到临时分支,在Percy后台找到对应构建,手动操作将其设置为基准分支的基线即可。
内容的提问来源于stack exchange,提问作者giles
相关产品推荐
相关产品推荐

