讲师中心 微信公众号
AI工具推荐 视频效率加速

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

秋杰大大_4717

秋杰大大_4717

发布时间:2026-07-13 22:13:07

|

569人浏览过

|

来源于php中文网

原创

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

本文介绍使用 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,可按如下方式附加多个文件:

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

transporter.sendMail({
  from: '"Test Automation" <your-email@gmail.com>',
  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));

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

  • 环境隔离:将邮箱配置存于 .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,而非账户主密码。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

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

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

4330

2023.10.13

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

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

2741

2023.10.23

Java 单元测试
Java 单元测试

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

1026

2025.10.24

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

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

100

2026.09.30

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

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

100

2026.09.30

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

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

80

2026.09.30

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

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

60

2026.09.30

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

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

80

2026.09.29

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

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

280

2026.09.23

热门下载

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

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn