Selenium3+生成HTMLTestRunner测试报告+发送带附件邮箱

1、导入各功能模块

from HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMEText #发送邮件正文from email.mime.multipart import MIMEMultipart #发送邮件附件from email.header import Headerimport smtplibimport unittestimport timeimport os

2、定义发送邮件(QQ邮箱)

#============定义发送邮件============def send_mail(file_new): smtpserver = "smtp.qq.com" #发件服务器 port = 465 #端口 sender = "540XXXXXX@qq.com" #发送端 psw = "jnl**********bef" #密码/授权码 receiver = "810XXXXXX@qq.com" #接收端 #=========编辑邮件内容========= 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 测试报告附件

 

相关文章