我們希望的是,自動化指令碼執行結束以後,把當前的測試報告和其他相關文件(例如用例)一起傳送給專案經理,所以就把傳送郵件的指令碼寫在批量執行文件裡了,因為程式是順序執行的,把發郵件的寫在批量執行下邊就可以了。
上**:
import unittest
import htmltestreportcn
from email.mime.multipart import mimemultipart
from email.mime.text import mimetext
import smtplib
import sys
import io
test_dir =
'./'
discover = unittest.defaulttestloader.discover(test_dir,pattern=
'api_test.py'
)result_file_name = test_dir +
'/result.html'
#這裡給測試報告取名,沒有用時間命名,因為用時間的話,發郵件的時候,處理起來比較麻煩,所以就直接用result了,每次執行指令碼時,都會覆蓋result,所以傳送這乙個名稱的檔案就可以了
fp =
open
(result_file_name,
'wb'
)if __name__==
'__main__'
: runner = htmltestreportcn.htmltestreportcn(
stream = fp,
title = u'用例'
) runner.run(discover)
fp.close(
)#傳送多個檔案
defsend_email
(file_path)
: username =
"*****@qq.com"
passwd =
"*****"
sender =
"*****@qq.com"
receivers =
'*****@qq.com'
msg = mimemultipart(
'related'
) msg[
'subject']=
'報告'
msg[
'from'
]= sender
msg.attach(mimetext(
'測試報告和測試用例'))
#新增附件
for path in file_path:
#這裡是新增多個不同型別的附件的位置,我這裡就新增了兩個,html和excel的,如果還有其他型別的檔案,比照著if語句複製就可以了
if".html"
in path:
#html檔案
html_name = path.split(
"\\")[
-1]open
(path,
'rb'
).read())
part.add_header(
'content-disposition'
,'attachment'
, filename=html_name)
msg.attach(part)
if".xls"
in path:
#excel檔案
xlsx_name = path.split(
"\\")[
-1]open
(path,
'rb'
).read())
part.add_header(
'content-disposition'
,'attachment'
, filename=xlsx_name)
msg.attach(part)
smtp = smtplib.smtp(
) smtp.connect(
"smtp.qq.com"
) smtp.login(username, passwd)
smtp.sendmail(sender, receivers, msg.as_string())
smtp.quit(
)print
("郵件傳送成功"
)
html_path =
".\\result.html"
xls_path =
".\\saoma.xls"
file_path =
[html_path,xls_path]
send_email(file_path)
執行完成以後,結果如下:
python介面自動化 發郵件帶附件
首先建立乙個py檔案,名稱為send main.py,檔案內容如下 from email.mime.text import mimetext import smtplib import sys import io buffer encoding utf8 smtpserver smtp.qq.com...
Python自動發郵件
摘要 本文介紹如何使用python發郵件,主要原理是利用qq郵箱傳送郵件 獲得授權碼後將其寫在下面程式中,然後就可以給自己的郵箱發郵件了 使用qq郵箱傳送郵件 content是傳送的內容,格式為 hostusername你自己的qq郵箱名 tousername 接收方的郵箱賬號 import smt...
python自動發郵件
本文以qq郵箱為例 python 內建smtplib庫支援傳送郵件 import smtplib from email.mime.text import mimetext from email.header import header 例項乙個郵箱物件 郵箱我們以qq郵箱為例 埠為465或者587,...