如何在Jenkins邮件通知中添加截图附件及Testcase跳转功能
Jenkins 测试截图邮件通知配置解答
问题1:是否可以将screenshot文件夹作为附件添加到Jenkins邮件通知中?如何操作?
可以实现,具体操作步骤如下:
- 首先在Jenkins插件管理中安装Email Extension Plugin(邮件扩展插件),该插件支持自定义附件、邮件模板等高级邮件配置。
- 在测试任务的构建步骤中新增命令,将screenshot文件夹打包为压缩包,避免邮件客户端不支持直接接收文件夹附件:
- 若测试运行的VM为Linux系统,添加命令:
zip -r screenshot_${BUILD_NUMBER}.zip screenshot/ - 若测试运行的VM为Windows系统,添加命令:
powershell Compress-Archive -Path screenshot -DestinationPath screenshot_${BUILD_NUMBER}.zip
- 若测试运行的VM为Linux系统,添加命令:
- 在构建后操作中添加「Editable Email Notification」配置项,找到Attachments(附件)配置栏,填写路径
**/screenshot_*.zip即可自动匹配本次构建生成的截图压缩包。 - 完成收件人、邮件主题、基础内容模板等常规邮件配置后保存任务,后续每次测试运行结束后就会自动将打包好的截图文件夹作为附件发送。
问题2:是否可以实现点击邮件内的Testcase链接即可查看对应测试用例截图?如何操作?
可以实现,常用两种配置方案:
方案1:依托Jenkins存档功能实现(无需额外服务器)
- 在测试任务的构建后操作中添加「Archive the artifacts」(存档制品)配置项,在Files to archive栏填写
screenshot/**/*,将本次测试的所有截图存档到Jenkins服务器对应构建目录下永久留存。 - 生成测试报告时,将每个测试用例对应的截图路径替换为Jenkins构建存档的固定访问格式:
${JENKINS_URL}/job/${JOB_NAME}/${BUILD_NUMBER}/artifact/screenshot/[对应测试用例截图文件名],其中变量会在构建时自动填充为当前任务、构建号的实际值。 - 在邮件模板中将测试用例名称设置为超链接,链接地址为上一步生成的对应截图路径,有权限访问Jenkins服务的收件人点击链接即可直接打开对应截图。
方案2:依托内部静态文件服务器实现(无需Jenkins访问权限)
- 搭建内部可访问的静态文件服务器,在测试构建完成后新增同步脚本,将screenshot文件夹同步到静态服务器的独立目录下,推荐按任务名+构建号区分存储路径,例如
/test-screenshot/${JOB_NAME}/${BUILD_NUMBER}/。 - 生成测试报告时,将测试用例对应的截图链接替换为静态服务器的访问地址,例如
http://your-internal-static-server.com/test-screenshot/${JOB_NAME}/${BUILD_NUMBER}/[对应测试用例截图文件名]。 - 在邮件模板中将测试用例名称绑定对应静态地址链接即可,所有在内部网络内的收件人无需Jenkins权限就可以点击链接查看截图。
内容的提问来源于stack exchange,提问作者Juhi Sehgal
相关产品推荐
相关产品推荐

