• 整理unittest框架-2019-12-2


    #自测的过程就是单元测试
    #自己写一些测试的代码,来测试自己写的代码功能看看有没有实现
    import unittest
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    # self.assertFalse()
    # self.assertTrue()#assert是断言校验结果对不对的
    #用例运行顺序按照函数妹子开头来的

    #为什么能self.因为父类里面有继承了testcase
    # unittest.main()#他会识别当前python文件所有测试用例帮你运行
    #出现in就不要写这行代码
    #产生测试报告不要用这种方法运行不加unittest.main()
    #如果选了点右上角run...运行
    #用它识别所有的测试用例自动识别出来


    测试报告

     把HTMLrunner放到这里

    运行这样运行

    #test case
    #testsuite#用例集合
    #testrunner#运行测试用例
    #testloader#查找测试用例
    import unittest,HTMLTestRunner
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    file=open('report.html','wb')#放到那个文件
    runner=HTMLTestRunner.HTMLTestRunner(file,title='测试报告')#标题
    test_suite=unittest.makeSuite(AddTest)#make方法找到用例变成测试集合,自动把test开头加进去
    runner.run(test_suite)#runner运行找个测试用例的集合,死用法
    file.close()
    结果可以复制路径和用浏览器打开查看

     第二种产生测试报告方法

    #test case
    #testsuite#用例集合
    #testrunner#运行测试用例
    #testloader#查找测试用例
    import unittest,HTMLTestRunner,BeautifulReport
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    test_suite=unittest.makeSuite(AddTest)#make方法找到用例变成测试集合,自动把test开头加进去
    report=BeautifulReport.BeautifulReport(test_suite)
    report.report(filename='bf_report.html',description='测试报告')

    report.report(filename='bf_report.html',description='测试报告',log_path='C:/Users/v-dongchunguang/Desktop')
    log_path路径写哪里测试报告产生再那里


    如果想要检验一个参数化的测试报告接口的应该这样写
    import parameterized,unittest,BeautifulReport
    #实现数据驱动 十条用例就说十条数据
    #代码驱动 用例全都是你写代码实现的
    #关键字驱动
    data=[['admin','123456',True,'正常登录'],
    ['admin','1122',True,'异常登录'],['admin','1111',False,'黑名单用户登录']]
    def Login(user,password):
    if user=='admin'and password=='123456':
    return True
    return False
    class LoginTest(unittest.TestCase):
    @parameterized.parameterized.expand(data)
    def test_Login(self,user,password,expect,desc):
    '''登录用例'''
    self._testMethodDoc=desc
    result=Login(user,password)
    self.assertEqual(expect,result)#判断
    bf=BeautifulReport.BeautifulReport(unittest.makeSuite(LoginTest))
    bf.report(filename='11-17测试报告',description='接口测试报告')


    返回的true和false 如果正常的就会返回成功的如果不是正常的就会返回失败


  • 相关阅读:
    面试(串讲三)
    未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“Microsoft.VisualStudio.Data.Providers.SqlServer.SqlViewSupport.xml”正确嵌入或链接到程序集“Microsoft.VisualStudio.Data.Providers.SqlServer”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。
    爬虫-js逆向记录1
    Spring Boot前后端分离直接访问静态页+ajax实现动态网页
    MODBUS-TCP通讯协议V1.03
    vs2019调试时,取消线程abort终止导致异常中断方法
    TCP/IP报文分析
    专业免费的图片、照片去灰底、修复软件,专业人员都在用它
    c指针的传递
    golang实现三重DES加密解密
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/11973180.html
Copyright © 2020-2023  润新知