- # coding =utf-8
- import os
- import unittest
- import time
- import datetime
- import smtplib
- from email.mime.text import MIMEText
- from htmlTestRunner import HTMLTestRunner
- def all_cases():
- case_path = os.getcwd()
- discover = unittest.defaultTestLoader.discover(case_path, pattern='test*.py', top_level_dir=None)
- return discover
- def run(report_path):
- with open(report_path, 'wb') as f:
- runner = HTMLTestRunner(stream=f, title="interface report", description="results like following:", verbosity=2)
- runner.run(all_cases())
- f.close()
- def timer(report_path, hour, minute):
- flag = 1
- while flag:
- while flag:
- now = datetime.datetime.now()
- if now.hour == hour and now.minute == minute:
- break
- time.sleep(10)
- # run(report_path)
- email_send(report_path)
- flag = 0
- def email_send(report_path,str_sender,receiver,author_code,smtp_server="smtp.qq.com",smtp_int_port=465):
- run(report_path)
- msg_from = str_sender # sender
- passwd = author_code # authentication code
- msg_to = receiver # receiver
- #如果多个接受者用列表 ['1932390299@qq.com','1393232463@qq.com']
- subject = "python_email_test"
- f = open(report_path, 'rb')
- mail_body = f.read()
- f.close()
- msg=MIMEText(mail_body, _subtype='html', _charset='utf-8')
- msg['Subject'] = subject
- msg['From'] = msg_from
- msg['To'] = msg_to
- try:
- s = smtplib.SMTP_SSL(smtp_server, smtp_int_port)
- s.login(msg_from, passwd)
- s.sendmail(msg_from, msg_to, msg.as_string())
- print("send success")
- except smtplib.SMTPException as e:
- print("send fail")
- finally:
- s.quit()
- def get_report_path():
- job_name = time.strftime('job_%Y%m%d%H%M%S', time.localtime()) + '.html'
- path = os.path.join(os.path.dirname(__file__), 'report')
- report_path = os.path.join(path, job_name)
- return report_path
来源: http://www.bubuko.com/infodetail-2988957.html