找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
本帖最后由 武汉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')


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册