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

  • 相关阅读:
    Mysql的row_format(fixed与dynamic)
    no-referrer-when-downgrade什么意思
    a标签属性 rel=noopener noreferrer
    深入理解ob_flush和flush的区别
    win7下php7.1运行getenv('REMOTE_ADDR')fastcgi停止运行
    学会了这项技能,你就能获得任何想要的信息!
    原来游戏技术行业最大的秘密竟然是...
    王亮:游戏AI探索之旅——从alphago到moba游戏
    入门系列之在Ubuntu 14.04上备份,还原和迁移MongoDB数据库
    入门系列之在Ubuntu上安装Drone持续集成环境
  • 原文地址:https://www.cnblogs.com/zwingblog/p/6322187.html
Copyright © 2011-2022 走看看