本帖最后由 武汉18期-方文锋 于 2022-9-9 17:31 编辑
#unittext#单元测试框架,是python的内置库
# 1、用例必须以text开头
# 2、setUp前置处理,每条用例运行前都会运行setup中的内容
# 3、tearDown后置处理,每条用例运行后都会运行teardown中内容
#装饰器@classmethod
# setUpClass只在用例开始运行一次
# tearDownClass只在所有用例执行完执行一次
# import unittest#导入unittest
# class Baidu(unittest.TestCase):#必须继承unittest的TestCase类
# from selenium import webdriver
# import time
# web = webdriver.Chrome()
# @classmethod
# def setUpClass(cls)->None:
# cls.web.get('http://www.baidu.com')
# cls.web.maximize_window()
# cls.web.implicitly_wait(5)
# @classmethod
# def tearDownClass(cls)->None:
# cls.web.switch_to.default_content()#返回首页
# cls.web.implicitly_wait(5)
# cls.web.quit()
# def setUp(self)->None:#前置处理
# self.web.find_element_by_id('kw').clear()#清空输入框
# def tearDown(self)->None:#后置处理
# self.time.sleep(2)
# self.web.find_element_by_id('su').click()
# self.time.sleep(3)
# # self.assertEqual('武汉多测师',self.web.title,msg='标题出错')#通过标题断言
# self.assertIn('多测师_百度搜索',self.web.title,msg='用例出错')
# unittest.skip('test_AAA')#跳过用例
# def test_AAA(self):
# self.web.find_element_by_id('kw').send_keys('武汉多测师')
# def test_BBB(self):
# self.web.find_element_by_id('kw').send_keys('杭州多测师')
# def test_CCC(self):
# self.web.find_element_by_id('kw').send_keys('北京多测师')
# assertEqual(self, first: Any, second: Any, msg: Any = ...)-> None:
# first:预期结果
# second:实际结果
#msg:出错显示信息
# assertTrue(self, expr: Any, msg: Any = ...)-> None:#
# assertFalse(self, expr: Any, msg: Any = ...)-> None:#
# assertIn(self, member: Any,container: Union[Iterable[Any], Container[Any]],msg: Any = ...) -> None:#包含断言
# if __name__ == '__main__':
# unittest.main()#执行所有函数
# 批量运行用例,使用套件
# if __name__ == '__main__':
# suite=unittest.TestSuite()#TstSuite是一个集合(套件)
# cases=[Discuz('test_AAA')]#定义要运行的用例集合
# suite.addTests(cases)#将用例装入集合
# runner=unittest.TextTestRunner()#TxstTestRunner类用来执行用例
# runner.run(suite) # 执行用例
# def Batch_execution(case_path):
# import unittest
# dis=unittest.defaultTestLoader.discover(start_dir=case_path,pattern='Discuz*.py')
# runner=unittest.TextTestRunner()
# runner.run(dis)#批量运行用例
import unittest,time
from HTMLtestRunner import HTMLTestRunner
from Email import *
def report_email(case_path):#批量运行用例,生成测试报告,并发送邮件
case_files=unittest.defaultTestLoader.discover(start_dir=case_path,pattern='Discuz*.py')
report_name=time.strftime('%Y-%m-%d_%H_%M')+'report.html'
reportfile=open(report_name,'wb')#编写文件,wb为二进制,固定格式
runner=HTMLTestRunner(stream=reportfile,title='TestReport',tester='winf',description='测试情况如下:')
runner.run(case_files)
newreport=new_report(case_path)#获取最新的测试报告
send_mail(newreport)#将测试报告用邮件发送
report_email(r'D:\pycharm\dcs18\new_p')
|
|