You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过MS任务计划器实现Robot Framework测试完成后发含报告快照的邮件?

当然可行!我之前帮团队落地过几乎一模一样的需求,下面给你拆解具体的实现步骤,照着来就能搞定:

具体实现方案

一、先确保Robot Framework能生成稳定的测试报告

  • 你的Robot脚本运行后,默认会产出report.html和log.html,这一步没问题。但要注意任务计划器的工作目录设置,最好把报告指定生成在固定路径(比如D:\RobotTests\Results\),避免后续步骤找不到文件。

二、生成报告快照(HTML转图片)

直接发HTML附件可能会被部分邮件客户端拦截或显示异常,转成图片嵌入邮件更稳妥。这里用Windows环境下易部署的命令行工具:

  • 用wkhtmltoimage(开源HTML转图片工具),把它放到固定路径(比如D:\Tools\wkhtmltoimage.exe)。
  • 在批处理里加一行命令即可生成快照:
    D:\Tools\wkhtmltoimage.exe --width 1200 D:\RobotTests\Results\report.html D:\RobotTests\Results\report_snapshot.png
    
    这个命令会把报告转成宽1200px的PNG图,刚好适配邮件阅读。

三、批处理整合全流程

把「跑测试→生成快照→发邮件」整合成一个批处理文件(比如RunTestsAndSendMail.bat),代码示例如下:

@echo off
:: 1. 执行Robot测试脚本,指定报告输出目录
robot --outputdir D:\RobotTests\Results D:\RobotTests\TestCases\YourTestSuite.robot

:: 2. 生成报告快照
D:\Tools\wkhtmltoimage.exe --width 1200 D:\RobotTests\Results\report.html D:\RobotTests\Results\report_snapshot.png

:: 3. 用PowerShell发送带内嵌图片的邮件(Windows自带,无需额外工具)
PowerShell -Command "& {
    $smtpServer = 'smtp.yourcompany.com'
    $smtpPort = 587
    $smtpUser = 'your-email@company.com'
    $smtpPass = 'your-app-token-or-password'
    $to = 'product-team@company.com'
    $subject = 'Robot Framework测试报告 - ' + (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')
    $body = '<p>您好,本次自动化测试已完成,测试报告快照如下:</p><img src=""cid:reportSnapshot"" />'
    $attachment = New-Object System.Net.Mail.Attachment('D:\RobotTests\Results\report_snapshot.png')
    $attachment.ContentId = 'reportSnapshot'
    $mail = New-Object System.Net.Mail.MailMessage($smtpUser, $to, $subject, $body)
    $mail.IsBodyHtml = $true
    $mail.Attachments.Add($attachment)
    $smtp = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)
    $smtp.EnableSsl = $true
    $smtp.Credentials = New-Object System.Net.NetworkCredential($smtpUser, $smtpPass)
    $smtp.Send($mail)
    $attachment.Dispose()
}"
  • 记得替换里面的SMTP服务器、邮箱账号、收件人等信息;如果公司用Exchange邮箱,也可以调整PowerShell命令适配Exchange协议。
  • 密码不要直接写明文,建议用Windows凭据管理器存储,或者生成邮箱的应用专用密码(比如Outlook、Gmail都支持)。

四、配置MS任务计划器

打开任务计划器创建基本任务:

  • 触发器:设置你需要的测试执行时间(比如每天凌晨2点)
  • 操作:选择启动程序,指定你的批处理文件RunTestsAndSendMail.bat
  • 关键设置:在「常规」选项卡勾选不管用户是否登录都要运行,并设置最高权限(避免权限不足导致报告生成失败或邮件发送失败);在「操作」的「起始于」里填批处理所在的目录,确保路径识别正确。

几个实用注意事项

  • 先单独运行批处理测试每一步:确认Robot能生成报告、快照能正常产出、邮件能成功发送,再配置任务计划器。
  • 可以给批处理加日志输出,比如在每一行命令后加>> D:\RobotTests\Logs\run.log 2>&1,方便后续排查任务计划器运行时的问题。
  • 如果觉得转图片麻烦,也可以直接把report.html作为附件发送,但部分邮件客户端可能会拦截HTML附件,转图片更稳妥。

内容的提问来源于stack exchange,提问作者scttech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:32:21