Python+Selenium 自動化測試獲取測試報告內容並發送郵件


這里封裝一個send_mail()方法,用於測試完成后讀取測試報告內容,並將報告內容通過郵件發送到接收人

SMTP:Simple Mail Transfer Protocol,簡單郵件傳輸協議

 1 # coding: utf-8
 2 
 3 import smtplib                            # 導入smtplib模塊  4 from email.mime.text import MIMEText
 5 from email.header import Header
 6 from .logger import *
 7 
 8 
 9 def send_email(test_report):
10 
11     with open(test_report, 'r', encoding='utf-8') as f:
12         mail_body = f.read()                                    # 打開測試報告,讀取報告內容作為郵件內容
13     sender = '*********@***.com'                                # 發出郵箱
14     receiver = ['******@***.com', '*******@**.com']             # 接收郵箱
15     mail_server = 'smtp.139.com'                                # 郵箱服務地址,這里以139郵箱為例
16     subject = '自動化測試報告'                                    # 郵件標題
17     username = '#########'                                      # 郵箱登錄名
18     passwd = '########'                                         # 密碼
19     message = MIMEText(mail_body, 'html', 'utf-8')              # 設置郵件格式
20     message['Subject'] = Header(subject, charset='utf-8')
21     # 郵箱登錄
22     smtp = smtplib.SMTP()                       # 實例化smtplib.SMTP()類對象 23     smtp.connect(mail_server)                     # 連接郵件服務器 24     smtp.login(username, passwd)                   # 登錄 25     # 發送郵件
26     for i in receiver:
27         smtp.sendmail(sender, i, message.as_string())
28         Logger().get_log().info( '郵箱:' + i + ',發送郵件成功!\n')  # 打印log
29     smtp.quit()

發送郵件這點,理論上可以直接使用smtp.sendmail(sender, receiver, message.as_string);

實際使用中發現同時發送到多個郵箱時效果不理想,會出現部分郵箱沒有發送;

所以這里使用for循環取接收郵箱遍歷發送!

 

用例執行后,調用此方法即可實現郵件發送

 

 1 # coding: utf-8
 2 # Team : Quality Management Center
 3 # Author:Carson
 4 # Date :2019/6/19 17:26
 5 # Tool :PyCharm
 6 
 7 from constant.path import *
 8 import HTMLTestRunner
 9 from encapsulation.add_case import *
10 from encapsulation.send_mail import *
11 
12 # 設置測試報告參數
13 fp = open(report_path, "wb")
14 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
15                                        title=u'測試報告標題',
16                                        description=u'描述信息:',
17                                        tester=u'測試人員')
18 # run所有用例
19 runner.run(add_test())
20 fp.close()
21 time.sleep(1)
22 print(u'測試報告生成地址:' + report_path)
23 time.sleep(5)
24 send_email(report_path)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM