一、单元测试
1.内置方法#在所有用例之前执行,并且只执行一次
@classmethod
def setUpClass(cls):
#在所有方法前面执行
@classmethod
def setUpClass(self):
#在所有方法后面执行
@classmethod
def tearDownClass(self):
#在所有用例之后执行,并且只执行一次
@classmethod
def tearDownClass(cls):
setup()自动在每个case前执行
def setUp(self):
#tearDown自动在每个case后执行
def tearDown(self):
2.自定义方法测试用例
必须以test开头
运行顺序以ASCII表执行
3.注意点
#a.必须继承unittest,TestCase
class Test(unittest.TestCase):
if __name__ == '__main__':
#b.直接运行全部用例
unittest.main()
#c.断言
accounts = self.page.get_realname()
#1.第一种方式断言
assert accounts == user,'error'
#2.第二种方式断言
# self.assertEqual(accounts,'user1','erreor')
二、获取excel中的数据
import openpyxl
class WorkBook:
def get(self,path,worktable):
#打开工作簿 workbook
workbook = openpyxl.load_workbook(path)
#获取指定的工作表worksheet
worksheet = workbook[worktable]
return [tuple(c.value for c in row) for row in worksheet][1:]
三、自动化报告
1.自动生成自动化测试报告
from base.HTMLTestRunner import HTMLTestRunner
class TestRunner:
def runner(self):
#实例化测试套件
suite = unittest.TestSuite()
#添加测试用例 discover(path路径,pattern基本特征)
suite.addTests(unittest.TestLoader().discover(r'selenium\ranzhi\test',pattern='login_test.py'))
#创建报告文件
# pretime = time.strftime('%Y-%m-%d-%H:%M:%S')
report = open(r'selenium\ranzhi\report\%sreport.html'%time.strftime('%Y-%m-%d %H-%M-%S'),mode='wb')
#创建用例运行器
test_runner = HTMLTestRunner(stream=report,title='Rabzhi自动化测试报告',description='报告的详细内容...')
#运行报告
test_runner.run(suite) |
|
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'
# 收件人 # 创建邮件对象 mail = MIMEMultipart() # 初始化发件人 mail['from'] = sender # 添加收件人 mail['to'] = receivers # 添加主题 mail['subject'] = 'Ranzhi自动化测试报告'
path = 'selenium/ranzhi/report/report_2021-03-02_16-43-02.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('邮件发送成功!')
|