Send Email in Robot Framework Python Using Gmail

轉載自:http://seleniummaster.com/sitecontent/index.php/selenium-robot-framework-menu/selenium-robot-framework-python-menu/228-send-email-in-robot-framework-python-using-gmailphp

 

When using Robot Framework Python, some customized test result log files or report files need to be emailed to QA engineers. You can create custom Gmail Email Library to send email with attachment or no attachment.  python

Step 1:  create a folder named "GmailEmailLibrary" under C:\Python27\Lib\site-packages (assuming that you have installed python at the root of C: drive)app

C:\Python27\Lib\site-packages\GmailEmailLibraryui

Step 2: write following codes in the file "gmailsendemail.py" and "__init__.py"this

gmailsendemail.pyspa

import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email import Encoders import os class SendEmailUtility(object): ROBOT_LIBRARY_SCOPE = 'Global' def __init__(self): print 'send email utility' def send_mail_with_attachment(self,from_user,from_password,to, subject, text, attach): msg = MIMEMultipart() msg['From'] = from_user msg['To'] = to msg['Subject'] = subject msg.attach(MIMEText(text)) part = MIMEBase('application', 'octet-stream') part.set_payload(open(attach, 'rb').read()) Encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(attach)) msg.attach(part) mailServer = smtplib.SMTP("smtp.gmail.com", 587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(from_user, from_password) mailServer.sendmail(from_user, to, msg.as_string()) # Should be mailServer.quit(), but that crashes... mailServer.close() def send_mail_no_attachment(self,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("smtp.gmail.com", 587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(from_user, from_password) mailServer.sendmail(from_user, to, msg.as_string()) # Should be mailServer.quit(), but that crashes... mailServer.close()

__init__.pycode

from gmailsendemail import SendEmailUtility __version__ = '1.0' class GmailEmailLibrary(SendEmailUtility): ROBOT_LIBRARY_SCOPE = 'GLOBAL'

Step 3: create a test project using RIDE in robot framework as shown below. Make sure that you import the library "GmailEmailLibrary". blog

Step 4: create the test cases "Send Email Has Attachment Test" and "Send Email No Attachment Test".  See the text version below. ip

*** Settings *** Library GmailEmailLibrary *** Test Cases *** Send Email Has Attachment Test Send Mail With Attachment services@seleniummaster.com ********** test@test.com Python Email Test This is python test test.txt Send Email No Attachment Test Send Mail No Attachment services@seleniummaster.com ********** test@test.com This is a test, this is a test Test is in progress

Run the tests. The two test cases will passget

相關文章
相關標籤/搜索