1. 程式人生 > >已附件的形式發送測試報告

已附件的形式發送測試報告

.com __name__ bject 就是 返回 common 收件人 smtplib htm

上一篇中提到了已郵件形式發送報告,但是發送的報告不能查看具體的內容,如果想看到具體的內容,需要已附件的形式發送報告

測試用例Demo不用修改,只需要修改發送郵件的代碼,具體的就是引入了MIMEMultipart類,郵件中的內容是分段存儲的,附件是related類型。

代碼如下:

from HTMLTestRunner import HTMLTestRunner
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
import
smtplib import unittest import os import time # 發送郵件 def sendReport(file_path): """發送帶附件的郵件""" sendfile = open(file_path,"rb").read() # 創建一個MIME類型的文件 # base64:就是一種基於64個可打印字符來表示二進制數據的方法 msg = MIMEText(sendfile,"base64","utf-8") # 附件類型,不知道附件類型是什麽的時候就用這個 # 具體可以參考:http://tool.oschina.net/commons
msg["Content-Type"] = "application/octet-stream" # 這個主要是在下載時,默認的文件名為result.html # 具體可以詳見content-Disposition的相關知識 msg["content-Disposition"] = "attachment;filename=result.html" # 附件的存儲類型 msgRoot = MIMEMultipart("related") msgRoot.attach(msg) # 標題 msg["Subject"] = Header("
自動化測試報告",utf-8) # 發件人 msg["From"] = "用戶名" # 收件人,如果給多人發送郵件,以分號隔開 msg["To"] = "用戶名" # SMTP協議,調用smtp.qq.com smtp = smtplib.SMTP(smtp.126.com) # 登陸郵箱,參數為用戶名和授權碼 smtp.login("用戶名", "授權碼") # 發件人給接收者發送郵件,收件人以分號隔開,內容以字符串形式 smtp.sendmail(msg["From"],msg["To"].split(";"),msg.as_string()) # 退出 smtp.quit() # 查找測試報告目錄,找到最新的測試報告文件,把最新的測試報告文件作為郵件發送內容 def newReport(testReport): # 返回測試報告所在目錄下所有的文件夾 lists = os.listdir(testReport) # 獲得升序排列後的測試報告列表 lists2 = sorted(lists) # 獲得最後一個測試報告地址 file_new = os.path.join(testReport,lists2[-1]) print(file_new) return file_new # 運行 if __name__ == "__main__": # 測試用例所在目錄 test_dir = "D:\\PythonDemo\\SeleniumProject\\Email" test_report = "D:\\testresult" # 加載測試用例所在目錄下的bing.py測試用例文件 discover = unittest.defaultTestLoader.discover(test_dir,pattern="bing.py") #獲取當前時間 now = time.strftime("%Y-%m-%d %H%M%S") # 測試報告名,測試結果路徑+時間+result.html filename = test_report + \\ + now + result.html # 以只讀的方式打開測試報告 fp = open(filename,"wb") runner = HTMLTestRunner(stream=fp,title="測試報告",description="測試用例執行情況") # 執行測試用例,測試用例在discover中加載 runner.run(discover) fp.close() # 拿到最新的測試報告 new_report = newReport(test_report) #發送郵件 sendReport(new_report)

  這樣就以附件的形式發送了測試報告,便於查看具體的測試內容

已附件的形式發送測試報告