如何在自动化测试项目中发送带附件的邮件报告

秋杰大大_4717

秋杰大大_4717

2026-07-13

569人浏览

原创

如何在自动化测试项目中发送带附件的邮件报告

本文介绍使用 node.js 的 nodemailer 库实现自动化测试报告(如 html、json 或截图)通过邮件自动发送给相关人员,支持 gmail、outlook 等主流 smtp 服务,并详细说明配置步骤、安全凭证设置及附件添加方法。

本文介绍使用 node.js 的 nodemailer 库实现自动化测试报告(如 html、json 或截图)通过邮件自动发送给相关人员,支持 gmail、outlook 等主流 smtp 服务,并详细说明配置步骤、安全凭证设置及附件添加方法。

在自动化测试项目(如基于 Selenium 的 Web UI 测试)中,生成测试报告后及时同步给团队成员或利益相关方,是持续集成与质量反馈的关键环节。Nodemailer 是目前最成熟、轻量且广泛使用的 Node.js 邮件发送库,原生支持附件、HTML 内容、多收件人、抄送等功能,完全满足测试报告(如 Allure、JUnit XML、自定义 HTML 报告)的自动化邮件分发需求。

✅ 快速开始:安装与基础配置

首先初始化项目并安装依赖:

npm init -y
npm install nodemailer

✅ 安全配置 SMTP 凭据(以 Gmail 为例)

⚠️ 注意:切勿在代码中硬编码密码。Gmail 要求使用「应用专用密码(App Password)」或启用两步验证后的 OAuth2 token。推荐做法:

  1. 开启 Google 账户的「两步验证」;
  2. 进入 Google App Passwords 页面,生成一个 16 位应用专用密码;
  3. 将该密码用于 auth.pass 字段(而非账户登录密码)。
const nodemailer = require('nodemailer');
const fs = require('fs');

const transporter = nodemailer.createTransporter({
  service: 'gmail', // 或显式配置:host: 'smtp.gmail.com', port: 465, secure: true
  auth: {
    user: 'your-email@gmail.com',
    pass: 'your-app-specific-password' // ✅ 不是 Gmail 登录密码!
  }
});

✅ 发送带附件的测试报告(关键示例)

假设你的 Selenium 测试执行后生成了 report.html 和 screenshots.zip,可按如下方式附加多个文件:

Writecream
Writecream

一款集AI写作、营销文案和内容创作于一体的在线工具,可辅助生成文章、广告、邮件等多种类型的文本内容。

下载
const reportPath = './reports/report.html';
const zipPath = './reports/screenshots.zip';

transporter.sendMail({
  from: '"Test Automation" <your-email>',
  to: 'stakeholder@company.com, qa-team@company.com',
  cc: 'manager@company.com',
  subject: `【自动化测试报告】${new Date().toLocaleDateString()}`,
  html: `<h2>✅ 自动化测试已完成</h2>
         <p>执行环境:Chrome v124 | 总用例数:42 | 通过率:95.2%</p>
         <p>详见附件报告。</p>`,
  attachments: [
    { filename: 'test-report.html', path: reportPath },
    { filename: 'screenshots.zip', path: zipPath },
    // ✅ 也可直接传 Buffer 或字符串内容(如 JSON 报告)
    { 
      filename: 'summary.json', 
      content: JSON.stringify({ passed: 40, failed: 2, duration: '2m18s' }, null, 2) 
    }
  ]
})
.then(info => console.log('? 邮件已发送,Message ID:', info.messageId))
.catch(err => console.error('❌ 邮件发送失败:', err));</your-email>

? 其他安全与最佳实践建议

  • 环境隔离:将邮箱配置存于 .env 文件(配合 dotenv 加载),避免提交到 Git;
  • 错误重试机制:生产环境中建议封装 sendMail() 并加入指数退避重试逻辑;
  • 大附件处理:单封邮件附件总大小建议 ≤25MB;超限时可改用云存储(如 AWS S3/Google Drive)生成临时下载链接嵌入邮件;
  • 替代服务选项:若企业禁用 Gmail,Nodemailer 同样兼容 Outlook (service: 'hotmail')、腾讯企业邮、阿里云邮件推送等,仅需调整 host/port/auth 参数。

✅ 总结

Nodemailer 不仅解决了“发送带附件邮件”这一刚需,更因其稳定性和文档完善度,成为 CI/CD 流水线(如 GitHub Actions、Jenkins)中集成邮件通知的事实标准。结合 Selenium 测试脚本的 afterAll 或 onFinish 钩子调用,即可实现“测试结束 → 生成报告 → 自动归档 → 邮件通知”的闭环。记住:安全凭证管理比功能实现更重要——永远优先使用应用专用密码或 OAuth2,而非账户主密码。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

2023.10.13

4350

8

java测试工具有哪些
java测试工具有哪些

java测试工具有JUnit、TestNG、Mockito、Selenium、Apache JMeter和Cucumber。php还给大家带来了java有关的教程,欢迎大家前来学习阅读,希望对大家能有所帮助。

2023.10.23

2761

10

Java 单元测试
Java 单元测试

本专题聚焦 Java 在软件测试与持续集成流程中的实战应用,系统讲解 JUnit 单元测试框架、Mock 数据、集成测试、代码覆盖率分析、Maven 测试配置、CI/CD 流水线搭建(Jenkins、GitHub Actions)等关键内容。通过实战案例(如企业级项目自动化测试、持续交付流程搭建),帮助学习者掌握 Java 项目质量保障与自动化交付的完整体系。

2025.10.24

1026

26

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

120

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

100

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

80

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

60

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

80

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习