咨询Travis构建期间及Cypress插件生成截图的可视化方法
我来帮你解决这两个实际项目里常遇到的问题,以下是具体的实现方案:
一、Travis构建过程中可视化生成的PNG图片
Travis的构建日志本身没法直接显示图片,但可以通过两种实用方式实现实时可视化:
利用Travis Artifacts功能实时上传(首选)
这是最稳定的方案,能在构建进行时同步上传截图到Travis的工件存储,随时查看:- 先在Travis控制台为你的仓库启用Artifacts功能;
- 在
.travis.yml里添加配置,安装工具并指定上传路径:before_install: - gem install travis-artifacts after_script: - travis-artifacts upload --path /home/travis/build/Org/my-app/cypress/snapshots/actual/Visual_testing/Login_page.js/Login\ page-actual.png --target-path cypress-screenshots - 构建时打开Travis构建详情页的「Artifacts」标签,就能看到正在上传的截图,点击即可预览或下载。
临时输出Base64编码(适合小图快速验证)
如果只是临时验证截图内容,可在构建脚本里加命令把截图转成Base64编码输出到日志:base64 /home/travis/build/Org/my-app/cypress/snapshots/actual/Visual_testing/Login_page.js/Login\ page-actual.png之后把日志里的Base64字符串复制出来,用本地脚本或工具转成图片查看即可,这个方法仅适合快速验证,不适合长期使用。
二、构建成功/失败后查看生成的截图
不管构建结果如何,你可以通过以下几种方式查看截图:
Travis Artifacts存储(最直接)
按上面的配置完成上传后,无论构建成功还是失败,都能在Travis构建详情页的「Artifacts」标签下找到所有上传的截图,直接点击就能在线预览或下载到本地查看。集成Cypress Dashboard
如果你用Cypress的记录功能,所有截图(包括实际图、视觉对比的差异图)都会自动同步到Cypress Dashboard:- 在Travis的环境变量中设置
CYPRESS_RECORD_KEY(从Cypress Dashboard后台获取); - 修改Cypress运行命令为:
cypress run --record
构建完成后,登录Cypress Dashboard就能在对应项目的测试记录里找到所有截图,还能直接对比基准图和实际图的差异。
- 在Travis的环境变量中设置
自定义上传到第三方存储
若需要长期保存截图,可在构建的after_success或after_failure钩子中,用命令把截图上传到自己的对象存储服务,示例(以S3为例):after_script: - aws s3 cp /home/travis/build/Org/my-app/cypress/snapshots/actual/Visual_testing/Login_page.js/Login\ page-actual.png s3://your-bucket/cypress-screenshots/之后通过存储服务的管理界面就能随时查看所有截图。
通过SSH登录构建机器查看
如果你的Travis仓库启用了SSH访问权限,构建完成后可以通过SSH登录到构建机器,直接查看或下载截图:scp travis@<构建机器IP>:/home/travis/build/Org/my-app/cypress/snapshots/actual/Visual_testing/Login_page.js/Login\ page-actual.png ./本地保存路径
内容的提问来源于stack exchange,提问作者ysridr

