zoukankan      html  css  js  c++  java
  • 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-gmail

    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.  

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

    C:Python27Libsite-packagesGmailEmailLibrary

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

    gmailsendemail.py

    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__.py

    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". 

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

    *** 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 pass

  • 相关阅读:
    仅Firefox中链接A无法实现模拟点击以触发其默认行为
    读jQuery之十二(删除事件核心方法)
    读jQuery之十(事件模块概述)
    读jQuery之十五
    事件模块的演变(9)
    Chrome(12)中使用getComputedStyle获取透明度(opacity)返回字符串不同于其它浏览器
    各浏览器对click方法的支持差异
    IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug
    Node.js: Python not found exception due to nodesass and nodegyp
    高等数学 工专 柳重堪
  • 原文地址:https://www.cnblogs.com/zwingblog/p/6322187.html
Copyright © 2011-2022 走看看