Selenium3+生成HTMLTestRunner測試報告+傳送帶附件郵箱
阿新 • • 發佈:2018-12-16
1、匯入各功能模組
from HTMLTestRunner import HTMLTestRunner from email.mime.text import MIMEText #傳送郵件正文 from email.mime.multipart import MIMEMultipart #傳送郵件附件 from email.header import Header import smtplib import unittest import time import os
2、定義傳送郵件(QQ郵箱)
#============定義傳送郵件============ defsend_mail(file_new): smtpserver = "smtp.qq.com" #發件伺服器 port = 465 #埠 sender = "[email protected]" #傳送端 psw = "jnl**********bef" #密碼/授權碼 receiver = "[email protected]" #接收端 #=========編輯郵件內容========= f = open(file_new, 'rb') mail_body= f.read() f.close() msg = MIMEMultipart() msg["from"] = sender #發件人 msg["to"] = receiver #收件人 msg["subject"] = "自動化測試報告" #主題 #正文 body = MIMEText(mail_body, "html", "utf-8") msg.attach(body) #掛起 #附件 att = MIMEText(mail_body, "base64", "utf-8") att["Content-Type"] = "application/octet-stream" att["Content-Disposition"] = 'attachment; filename="test_report.html"' #定義附件名稱 msg.attach(att) #掛起 #=========傳送郵件========= smtp = smtplib.SMTP_SSL(smtpserver, port) smtp.login(sender, psw) smtp.sendmail(sender, receiver, msg.as_string()) #傳送 smtp.quit() #關閉
3、查詢測試報告目錄,找到最新生成的測試報告檔案
#============查詢測試報告目錄,找到最新生成的測試報告檔案============ def new_report(testreport): lists = os.listdir(testreport) lists.sort(key=lambda fn:os.path.getatime(testreport + fn)) file_new = os.path.join(testreport, lists[-1]) print(file_new) return file_new
4、測試執行以上各程式碼模組
if __name__ == '__main__': test_dir = './test_case/' #測試用例所在目錄 test_report = './report/' #測試報告所在目錄 discover = unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py') #匹配目錄下以"test_"開頭的測試用例檔案 #定義實時測試報告檔案,方便檢視區分 now = time.strftime("%Y-%m-%d %H_%M_%S") filename = test_report + now + ' result.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='測試報告', description='用例執行情況:') runner.run(discover) fp.close() new_report = new_report(test_report) send_mail(new_report) #傳送測試報告
5、測試成功
6、下載開啟 test_report.html 測試報告附件