日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

自动化测试框架搭建-邮件-5

發(fā)布時(shí)間:2025/3/20 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化测试框架搭建-邮件-5 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ?在前面生成自動(dòng)化框架中講解了一步步生成日志,報(bào)告。生成測(cè)試報(bào)告之后需要提交給他人查看,自然需要用到右鍵發(fā)送的功能,這里學(xué)習(xí)一下smtplib?和 email 庫(kù)。

? ? ?在utils中創(chuàng)建mail.py,初始化時(shí)傳入全部所需數(shù)據(jù),message是正文,可不填,path可以傳list或者str;receiver支持多人,用”;”隔開(kāi)就行

#coding:utf-8'''郵件類。用來(lái)給指定用戶發(fā)送郵件。可指定多個(gè)收件人,可帶附件。 ''' import re import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from socket import gaierror,error from Framework.utils.log1 import loggerclass Email():def __init__(self,server,sender,password,receiver,title,message = None,path = None):'''intial Email:param server:smtp server,M:param sender::param password::param receiver::param title::param message:the content of mail:param path:附件路徑,可傳入list(多附件)或str(單個(gè)附件),非必填。'''self.title = titleself.message = messageself.files = pathself.msg = MIMEMultipart('related')self.server = serverself.sender = senderself.receiver = receiverself.passwd = passworddef _attach_file(self,att_file):'''將單個(gè)文件添加到附件列表中:param att_file::return:'''att = MIMEText(open('%s' % att_file,'rb'),'plain','utf-8')att['Content-Type'] = 'application/octet-stream'file_name = re.split(r'[\\|/]',att_file)att['Content-Disposition'] = 'attachment;filename="%s"' % file_name[-1]self.msg.attach(att)logger.info("attach file {}".format(att_file))def send(self):self.msg['Subject'] = self.titleself.msg['From'] = self.senderself.msg['To'] = self.receiver#the content of mailif self.message:self.msg.attach(MIMEText(self.message))#添加附件,支持多個(gè)附件(傳入list),或者單個(gè)附件(傳入str)if self.files:if isinstance(self.files,list):for f in self.files:self._attach_file(f)elif isinstance(self.files,str):self._attach_file(self.files)#連接服務(wù)器并發(fā)送try:smtp_server = smtplib.SMTP(self.server)except (gaierror and error) as e:logger.exception("郵件發(fā)送失敗,無(wú)法連接到SMTP服務(wù)器,檢查網(wǎng)絡(luò)以及SMTP服務(wù)器。%s", e)else:try:smtp_server.login(self.sender,self.passwd)#loginexcept smtplib.SMTPAuthenticationError as e:logger.exception("用戶名密碼驗(yàn)證失敗!%s", e)else:#發(fā)送郵件smtp_server.sendmail(self.sender,self.receiver.split(';'),self.msg.as_string())finally:smtp_server.quit()#斷開(kāi)連接logger.info('發(fā)送郵件成功"{0}"成功!收件人:{1}。如果沒(méi)有收到郵件,請(qǐng)檢查垃圾箱,''同時(shí)檢查收件人地址是否正確'.format(self.title,self.receiver))

修改test_baidu6.py,完成測(cè)試用例的執(zhí)行并進(jìn)行郵件的發(fā)送

#coding:utf-8"""test_baidu6.py.add a function of send mail"""import time import unittest from selenium import webdriver from selenium.webdriver.common.by import By from Framework.utils.config import Config, DRIVER_PATH, DATA_PATH,REPORT_PATH from Framework.utils.log import logger from Framework.utils.file_reader1 import ExcelReader from Framework.utils.mail import Email import HTMLTestRunnerclass TestBaiDu(unittest.TestCase):URL = Config().get('URL')excel = DATA_PATH + '/baidu.xlsx'locator_kw = (By.ID,'kw')locator_su = (By.ID,'su')locator_result = (By.XPATH, '//div[contains(@class, "result")]/h3/a')def sub_setUp(self):self.driver = webdriver.Chrome(executable_path=DRIVER_PATH + '/chromedriver.exe')self.driver.get(self.URL)print "DATA_PATH:",DATA_PATHdef sub_tearDown(self):self.driver.quit()def test_search(self):datas = ExcelReader(self.excel).dataprint datasfor d in datas:print "d['search']",d['search']self.sub_setUp()print "self.driver",self.driverself.driver.find_element(*self.locator_kw).send_keys(d['search'])self.driver.find_element(*self.locator_su).click()time.sleep(1)#開(kāi)始是find_element,由于定位的是信息是一組信息(selenium和python selenium),因此需要使用find_elements()進(jìn)行定位links = self.driver.find_elements(*self.locator_result)for link in links:logger.info(link.text)self.sub_tearDown()if __name__ == '__main__':report = REPORT_PATH + '\\report.html'with open(report, 'wb') as f:runner = HTMLTestRunner(f, verbosity=2, title='從0搭建測(cè)試框架 灰藍(lán)', description='修改html報(bào)告')runner.run(TestBaiDu('test_search'))e = Email(title='百度搜索測(cè)試報(bào)告',message='這是今天的報(bào)告,請(qǐng)查收!',receiver='...',server='...',sender='...',password='...',path=report)e.send()

總結(jié)

以上是生活随笔為你收集整理的自动化测试框架搭建-邮件-5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。