最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python發(fā)送郵件封裝實(shí)現(xiàn)過程詳解

 更新時間:2020年05月09日 11:01:05   作者:全棧測試開發(fā)日記  
這篇文章主要介紹了Python發(fā)送郵件封裝實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

  引言

  在做接口測試的時候,我們不僅需要將測試結(jié)果以報告的形式展示,還需要將測試結(jié)果以郵件的形式發(fā)送到需要知道的人手中。那么如何發(fā)送郵件呢?

  郵件發(fā)送方式

  測試結(jié)果以郵件形式發(fā)送的方式有兩種:

第一種:手動統(tǒng)計(jì)結(jié)果數(shù)據(jù)及報告,用郵件客戶端或web版形式發(fā)送,比如:用QQ郵箱,foxmail郵箱...

第二種:使用腳本發(fā)送,比如:利用python內(nèi)置對SMTP協(xié)議的支持,發(fā)送郵件。

  介紹一下:

SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件;Python對SMTP支持有smtplib和email兩個模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件;Smtplib是關(guān)于 SMTP(簡單郵件傳輸協(xié)議)的操作模塊,在發(fā)送郵件的過程中,起到服務(wù)器之間互相通信的作用;Email是用來設(shè)置服務(wù)器之間通信的信息,包括信息頭、信息主體等等;用腳本發(fā)郵件時,需要先打開自己郵箱的 SMTP 功能,各家郵箱的設(shè)置方法不同,可自行百度;

發(fā)郵件流程圖剖析:

  腳本實(shí)現(xiàn)發(fā)送郵件

  這里我只介紹python腳本發(fā)送郵件,具體參考下面代碼,關(guān)鍵部分已經(jīng)注釋:

# -*- coding: utf-8 -*-
'''
@author: Leo
@software: pycharm
@file: 111.py
@time: 2020/4/26 0026 1:13
@Desc:
'''
__author__ = 'Leo'
# -*- coding: utf-8 -*-
'''
@author: Leo
@software: pycharm
@file: send_email.py
@time: 2020/4/25 0025 22:02
@Desc:
 
'''
__author__ = 'Leo'
# 導(dǎo)入發(fā)送郵件模塊:smtplib
import smtplib
# 導(dǎo)入構(gòu)造郵件模塊:MIMEText
from email.mime.text import MIMEText
class SendEmail(object):
  """
  發(fā)送郵件模塊
  """
  def __init__(self):
    """
    初始化郵件配置服務(wù)
    """
    self.send_user = '###'
    self.mail_host = 'smtp.163.com'
    self.password = '###'
 
  def send_mail(self,user_lists,subject,content):
    """
    執(zhí)行發(fā)送郵件
    """
    user = "發(fā)件人名稱" + "<" + self.send_user + ">"
    message = MIMEText(content,_subtype="plain",_charset="utf8")
    message['Subject'] = subject
    message['From'] = user
    message['To'] = ";".join(user_lists)
    try:
      server = smtplib.SMTP()
      server.connect(self.mail_host)
      server.login(self.send_user,self.password)
      # as_string將MIMEText對象轉(zhuǎn)成str
      server.sendmail(user,user_lists,message.as_string())
      server.close()
      print("郵件發(fā)送成功".center(60,'='))
 
    except:
      print("郵件發(fā)送失敗".center(60,'='))
      raise
  def send_content(self,data):
    """
    發(fā)送郵件內(nèi)容
    """
    pass_cases_nums = int(len(data['pass_cases']))
    print("用例執(zhí)行成功數(shù):%s"%pass_cases_nums)
    fail_cases_nums = int(len(data['fail_cases']))
    print("用例執(zhí)行失敗數(shù):%s"%fail_cases_nums)
    not_execute_nums = int(len(data['not_execute_cases']))
    print("用例未執(zhí)行數(shù):%s" % fail_cases_nums)
    execute_num = float(pass_cases_nums + fail_cases_nums)
    total_cases = float(pass_cases_nums + fail_cases_nums + not_execute_nums)
    pass_ratio = "%.2f%%" % (pass_cases_nums / total_cases * 100)
    fail_ratio = "%.2f%%" % (fail_cases_nums / total_cases * 100)
 
    user_lists = ['###']
    subject = "【接口自動化測試用例執(zhí)行統(tǒng)計(jì)】"
    content = "一共 %f 個用例, 執(zhí)行了 %f 個用例,未執(zhí)行 %f 個用例;成功 %f 個,通過率為 %s;失敗 %f 個,失敗率為 %s" % (total_cases, execute_num, not_execute_nums, pass_cases_nums, pass_ratio, fail_cases_nums, fail_ratio)
 
    self.send_mail(user_lists, subject, content)
if __name__ == '__main__':
  sm = SendEmail()
  sm.send_content({'pass_cases':[1, 3, 5],'fail_cases':[2, 4, 6],'not_execute_cases':[1, 2, 3]})

運(yùn)行程序:

結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Django的URLconf中使用多個視圖前綴的方法

    在Django的URLconf中使用多個視圖前綴的方法

    這篇文章主要介紹了在Django的URLconf中使用多個視圖前綴的方法,Django是Python中最為著名的遵循MVC結(jié)構(gòu)的開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Matplotlib使用和繪制二維圖表教程

    Matplotlib使用和繪制二維圖表教程

    Matplotlib是一個強(qiáng)大的Python繪圖庫,可以用來繪制各種靜態(tài)、動態(tài)和交互式的圖表,文章介紹了Matplotlib的基本概念、繪制折線圖、散點(diǎn)圖、柱狀圖、直方圖和餅圖等方法,并詳細(xì)解釋了Matplotlib的三層結(jié)構(gòu)
    2025-02-02
  • 詳解Python異常處理中的Finally else的功能

    詳解Python異常處理中的Finally else的功能

    本篇文章主要介紹了詳解Python異常處理中的Finally else的功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python對象的深拷貝和淺拷貝詳解

    Python對象的深拷貝和淺拷貝詳解

    這篇文章主要介紹了Python對象的深拷貝和淺拷貝詳解,本文從Python核心編程2書中摘錄而來,總結(jié)的比較精辟,需要的朋友可以參考下
    2014-08-08
  • 深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)

    深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Python中自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • python關(guān)鍵字and和or用法實(shí)例

    python關(guān)鍵字and和or用法實(shí)例

    這篇文章主要介紹了python關(guān)鍵字and和or用法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • Python利用keras接口實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)回歸

    Python利用keras接口實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)回歸

    這篇文章主要為大家詳細(xì)介紹了基于Python語言中TensorFlow的Keras接口,實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)回歸的方法。文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-02-02
  • Python使用TextRank算法提取關(guān)鍵詞

    Python使用TextRank算法提取關(guān)鍵詞

    textrank是在pagerank的基礎(chǔ)上提出來的。PageRank對于每個網(wǎng)頁頁面都給出一個正實(shí)數(shù),表示網(wǎng)頁的重要程度,PageRank值越高,表示網(wǎng)頁越重要,在互聯(lián)網(wǎng)搜索的排序中越可能被排在前面
    2022-12-12
  • 使用Python在Excel中設(shè)置和自定義頁眉和頁腳的操作方法

    使用Python在Excel中設(shè)置和自定義頁眉和頁腳的操作方法

    本文介紹如何使用Python在Excel中設(shè)置和自定義頁眉和頁腳,內(nèi)容包括插入基礎(chǔ)頁眉和頁腳、在頁眉和頁腳中添加圖片、為奇偶頁設(shè)置不同的頁眉和頁腳,以及為第一頁設(shè)置不同的頁眉和頁腳,感興趣的小伙伴跟著小編一起來看看吧
    2025-02-02
  • Python3實(shí)現(xiàn)取圖片中特定的像素替換指定的顏色示例

    Python3實(shí)現(xiàn)取圖片中特定的像素替換指定的顏色示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)取圖片中特定的像素替換指定的顏色,涉及Python3針對圖片文件的讀取、轉(zhuǎn)換、生成等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評論

六枝特区| 通州市| 抚松县| 连江县| 晋宁县| 吉木萨尔县| 义马市| 普宁市| 辽中县| 通州市| 佳木斯市| 察哈| 随州市| 陈巴尔虎旗| 高安市| 花莲县| 永年县| 肥城市| 界首市| 昆明市| 南皮县| 广饶县| 峨眉山市| 扬州市| 德钦县| 隆德县| 宣化县| 资阳市| 东辽县| 信宜市| 潍坊市| 班玛县| 含山县| 洱源县| 德江县| 墨竹工卡县| 瑞安市| 涡阳县| 昌江| 尼木县| 福清市|