51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 972|回复: 1
打印 上一主题 下一主题

[转贴] unittest自动化测试框架核心要素以及应用

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-4-25 13:15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     1. unittest核心要素
      ·unittest介绍
      测试框架,不仅仅用于单元测试
      python自动的测试包
      用法和django.test.TestCase类似
      1.1、unitest介绍和核心要素
      自动化测试最初接触的就是python中的unitest框架,因为它是python自带的一套测试框架,学习起来也相对较容易,下面是unitest框架的四个概念(较为一目了然):

    test case:就是我们的测试用例,unittest中提供了一个基本类TestCase,可以用来创建新的测试用例,一个TestCase的实例就是一个测试用例;unittest中测试用例方法都是以test开头的,且执行顺序会按照方法名的ASCII值排序。
      test fixure:测试夹具,用于测试用例环境的搭建和销毁。即用例测试前准备环境的搭建(SetUp前置条件),测试后环境的还原(TearDown后置条件),比如测试前需要登录获取token等就是测试用例需要的环境,运行完后执行下一个用例前需要还原环境,以免影响下一条用例的测试结果。
      test suite:测试套件,用来把需要一起执行的测试用例集中放到一块执行,相当于一个篮子。我们可以使用TestLoader来加载测试用例到测试套件中。
      test runner:用来执行测试用例的,并返回测试用例的执行结果。它还可以用图形或者文本接口,把返回的测试结果更形象的展现出来,如:HTMLTestRunner。
      1.2、unittest核心要素的使用
    1.  # ---*--- encoding: utf-8 ---*---
    2.   '''
    3.   [url=home.php?mod=space&uid=267564]@Author[/url]  :   {gan sir}
    4.   [url=home.php?mod=space&uid=3428]@time[/url]    :   2022/3/4 14:22
    5.   '''
    6.   import unittest
    7.   #测试类、继承于unittest.TestCase
    8.   class MyTest(unittest.TestCase):
    9.       def test_1(self):
    10.           print("test_1")
    11.     def test_1(self):
    12.           print("test_1")
    13.   if __name__ == '__main__':
    14.   #类的外面
    15.   #2、容器,容器添加测试用例
    16.       suit = unittest.BaseTestSuite()
    17.   #测试用例的执行顺序,按添加的顺序执行
    18.       suit.addTest(MyTest('test_1'))
    19.       suit.addTest(MyTest('test_1'))
    20.   #3、运行容器中的测试用例
    21.      runner = unittest.TextTestRunner()
    22.      runner.run(suit)
    复制代码
    1.3、了解Fixture
      测试类中:实现了前、后置方法,他就是一个fixture。

      1.4、掌握defaultTestLoader
     # ---*--- encoding: utf-8 ---*---
      '''
      @Author  :   {gan sir}
      @Time    :   2022/3/4 14:22
      '''
      import unittest
      # 测试类、继承于unittest.TestCase
      class MyTest(unittest.TestCase):
          def test_1(self):
              print("test_11111111111111")
              def test_1(self):
                  print("test_2222222222222")
      if __name__ == '__main__':
          #2.容器,容器添加测试用例
          #默认找指定路径下,所有test开头文件
          #参数1;路径,参数2:指定文件
          suite = unittest.defaultTestLoader.discover('./','test_2_demo.py')
          #3.运行容器中的测试用例
          runner = unittest.TextTestRunner()
          runner.run(suite)

     2、掌握unitest基本使用

     import unittest       # unittest的单元测试框架
                        
      class TestConut(unittest.TestCase):  # TestConut指类的名字,继承了TestCase这个类,即拥有了该类的所有方法,首字母大写            
          @classmethod                  
          def setUpClass(cls) -> None:                  
              print('setUpClass')
          def setUp(self) -> None:  # 这里setup指执行测试用例之前的预操作,即每次执行一条测试用例的时候都会执行该操作              
        print('test start')         
          def test_01(self):    # 此框架所定义的函数名执行测试用例的时候必须以test开头,且执行测试用例时会默认按照阿拉伯数字的顺序执行及1,2,3,4...                 
              print('执行test_01测试')                  
          def test_02(self):               
              print('执行test_02测试')                  
          def test_03(self):               
              print('执行test_03测试')
         def test_s(self):
           print('test_s')
           a = 1 + 1
           self.assertEqual(a,2,'结果不为2')
         def test_f(self):
           print('test_f')
           a = 1 + 2
           self.assertEqual(a,3,'结果不为3')
          def tearDown(self):    # 这里和上面的setup相对应,即执行完每个测试用例之后的结束操作,如关闭浏览器                  
              print('test end')                 
          @classmethod                  
          def tearDownClass(cls):                  
              print('最后结束的!')                  
      if __name__ =='_main_':                  
          unittest.main()

    3、断言

     #  arg1和arg2相等,测试通过,标志为T。
      #  arg1和arg2不相等,测试不通过,标志为F,抛出异常,显示msg的信息
         unittest.assertEqual(arg1,arg2,msg=None)




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 02:48 , Processed in 0.065075 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表