机器人框架测试结果的电子邮件通知[已关闭]

问题描述 投票:0回答:3

我们正在使用Robot框架来执行自动化测试用例。 要求是一旦在 Robot Framework 中执行完成,我们应该通过电子邮件收到通知, 谁能指导我编写测试结果电子邮件通知的脚本。

注意: 我有电子邮件服务器详细信息。

问候, -克兰蒂

robotframework
3个回答
3
投票

您可以创建自定义库来发送电子邮件。

更多详情参见官方文档

我做了类似的事情,我基于这篇文章创建了库。

Python 文件中的函数示例:

import smtplib
from io import StringIO
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText

from email import encoders
import os


def send_mail_no_attachment(server, from_user, from_password, to, subject, text):
    msg = MIMEMultipart()

    msg['From'] = from_user
    msg['To'] = to
    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    mailServer = smtplib.SMTP(server)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(from_user, from_password)
    mailServer.sendmail(from_user, to, msg.as_string())
    mailServer.close()

调用robot文件中的函数:

*** Test Cases ***
example mail
    send mail no attachment  ${SMTP_SERVER}  ${USER}  ${PASS}  ${mail}  ${subject}  ${text}

如果您对机器人框架不是很熟悉,请仅定义函数,不要定义类,您可以在算法中将此函数作为关键字调用。


2
投票

您可以使用 jenkins 来运行您的 Robot Framework 测试用例。 jenkins 中有一个自动生成的邮件选项,用于发送带有测试结果的邮件。


1
投票

我使用 smtplib 和 MIMEText

import smtplib
from email.mime.text import MIMEText

class EmailClient():

    def __init__(self, my_address):
        self.my_address = my_address

    def send(self, message, subject, user, email):

        header = "Hello " + str(user) + ",\n\n"
        footer = "\n\n-Your Boss"
        msg = MIMEText(header + message + footer)

        msg['Subject'] = subject
        msg['From'] = self.my_address
        msg['To'] = email

        s = smtplib.SMTP('localhost')
        s.sendmail(self.my_address, [email], msg.as_string())
        s.quit()

EClient = EmailClient("[email protected]")
EClient.send("This is a test Email", "Test Subject", "John Doe", "[email protected]")
© www.soinside.com 2019 - 2024. All rights reserved.