1.通过邮件发送报告 from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
# 设置邮件服务器
smtpserver = 'smtp.163.com'
# 设置邮件服务器端口号
port = 25
# 发件人地址
sender = 'whj19970626@163.com'
# 密码或授权码
password = 'VHMNBLMDZJWFKONF'
# 收件人
receivers = 'z744277252@163.com; 15091835804@163.com'
# 创建邮箱对象
mail = MIMEMultipart()
# 初始化发件人
mail['from'] = sender
# 添加收件人
mail['to'] = receivers
# 添加主题
mail['subject'] = 'Ranzhi 自动化测试报告'
# 读取附件
path = 'selenium/ranzhi2/report/report_2021-03-02 16-25-59.html'
with open(path,'rb') as file:
report = file.read()
# 对附件进行编码
attachment = MIMEText(report,'base64','utf-8')
# 设置附件的类型
attachment['Content-Type'] = 'application/octet-stream'
# 设置附件的处理方式
attachment['Content-Disposition'] = 'attachment;filename=%s'%path.split('/')[-1]
# 添加附件
mail.attach(attachment)
# 生成正文
content = '''
<p>Dear Mike,</p>
<p> 这里是<u>Ranzhi</u>项目的测试报告,请您查收!</p>
<p> 此致</p>
<p>Tom Cruse</p>
'''
# 对邮件正文进行编码
body = MIMEText(content,'html','utf-8')
# 添加正文
mail.attach(body)
# 创建SMTP对象
smtp = smtplib.SMTP()
# 连接服务器
smtp.connect(smtpserver,port)
# 登录服务器
smtp.login(sender,password)
# 发送邮件
smtp.sendmail(sender,receivers.split(';'),mail.as_string())
# 关闭服务器
smtp.close()
print(' 邮件发送成功!')2.打开工作簿 import openpyxl # 打开工作簿 workbook = openpyxl.load_workbook(r'selenium\ranzhi2\data\data.xlsx') # 获取指定的工作表worksheet worksheet = workbook['login_success'] #[('user1','123456'),('user2','123456'),('user3','123456'),('user4','123456'),('user5','123456'),('user6','123456')] # 方法一: # a = [] # for row in worksheet: # r = [] # for c in row: # #c.value 获取单元格的内容 # r.append(c.value) # a.append(tuple(r)) # print(a) #方法二: a = [tuple(c.value for c in row) for row in worksheet] print(a) 3. from base.HTMLTestRunner import HTMLTestRunner import unittest,time class TestRunner: def runner(self): # 实例化测试套件 suite = unittest.TestSuite() # 添加测试用例 # ./ 路径 suite.addTests(unittest.TestLoader().discover(r'selenium\ranzhi2\test',pattern='login_test.py')) # 创建一个时间戳 pre = time.strftime('%Y-%m-%d %H-%M-%S') # 创建报告文件 report = open ('selenium/ranzhi2/report/report_%s.html'%pre,mode='wb') # 创建用例运行器 test_runner = HTMLTestRunner(stream = report, title ='Ranzhi自动化测试报告',description='报告的详细内容...') # 运行报告 test_runner.run(suite) if __name__ == "__main__": TestRunner().runner()
|