暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

接口测试 | Day54 unittest的套件与运行器​

走向易富强之路 2021-08-17
458
 
背景说明:
1、为了防止三天打鱼两天晒网式学习
2、每日更新1-2个小知识点或者案例
3、只看和跟着做的理解程度是不一样的
4、建议一起打卡练习
5、互相督促打卡 + v:yifuqiang2021

Day54


目标:
  • skip装饰器
  • 测试套件与运行器

一、skip装饰器
  • 通过@unittest.skip进行调用
  • @unittest.skip:无条件跳过该用例执行
  • @unittest.skipif:当if条件为真时,跳过
  • @unittest.skipUnless:与skipif相反,当条件为假的时候,跳过
  • @unittest.expectedFailure:当用例报错时,系统选择忽略

    # 导包
    import unittest
    # 继承unittest.TestCase
    class UnitDemo(unittest.TestCase):
    @unittest.skip('这是一个skip装饰器')
    def test_1(self):
    print('test_1')
    @unittest.skipIf(1==1,'条件成立时跳过')
    def test_2(self):
    print('test_2')
    @unittest.skipUnless(1==2,'条件不成立时跳过')
    def test_3(self):
    print('test_3')
    @unittest.expectedFailure
    def test_4(self):
    a = 1/0
    print(a)
    def test_5(self):
    print('test_5')
    # 运行测试用例
    if __name__ == '__main__':
    unittest.main()‘
    运行结果:


    二、测试套件与运行器
    • 场景:
      • 冒烟测试用例
      • 主流程测试用例
    • 说明:
      • 套件的运行需要通过运行器来进行运行操作,默认运行器是TextTestRunner
      • 运行套件时,用例的顺序是基于套件在添加用例时的顺序来定的
    • 用法:
      • 创建套件
      • 添加用例到套件
        • 单个添加:通过用例的名称进行添加
        • 批量添加:
          • 通过用例集合来进行添加
          • 通过TestCase对象直接添加一整个UnitTest类
          • 通过类名来进行添加
          • 通过文件名来进行添加
      • 运行套件

    实例1:通过用例的名称进行单个添加
      import unittest
      from unit_demo import UnitDemo
      #创建套件
      suite = unittest.TestSuite()


      # 添加用例到套件中:添加单个测试用例:通过用例的名称进行添加
      suite.addTest(UnitDemo('test_5'))
      suite.addTest(UnitDemo('test_2'))
      suite.addTest(UnitDemo('test_3'))


      # 运行套件
      runner = unittest.TextTestRunner()
      runner.run(suite)
      运行结果:

      实例2:一次性添加多个测试用例,通过用例集合来进行添加
        import unittest
        from unit_demo import UnitDemo


        #创建套件
        suite = unittest.TestSuite()


        # 2.批量添加用例到套件:一次性添加多个测试用例,通过用例集合来进行添加
        cases = [UnitDemo('test_3'), UnitDemo('test_5'), UnitDemo('test_1')]
        suite.addTests(cases)


        # 运行套件
        runner = unittest.TextTestRunner()
        runner.run(suite)
        运行结果:

        实例3:通过TestCase对象直接添加一整个UnitTest类
          import unittest
          from unit_demo import UnitDemo
          #创建套件
          suite = unittest.TestSuite()


          # 3.批量添加测试用例:通过TestCase对象直接添加一整个UnitTest类
          suite.addTests(unittest.TestLoader().loadTestsFromTestCase(UnitDemo))


          # 运行套件
          runner = unittest.TextTestRunner()
          runner.run(suite)
          运行结果:

          实例4:通过类名来进行批量添加
            import unittest
            from unit_demo import UnitDemo
            #创建套件
            suite = unittest.TestSuite()


            # 4. 批量添加:通过类名来进行添加
            suite.addTests(unittest.TestLoader().loadTestsFromName('unit_demo.UnitDemo'))


            # 运行套件
            runner = unittest.TextTestRunner()
            runner.run(suite)
            运行结果:

            实例5:通过文件名来进行批量添加
              import unittest
              #创建套件
              suite = unittest.TestSuite()


              # 5. 批量添加:通过文件名来进行添加
              # 定义获取用例的路径
              case_dir = './'


              # 基于路径来用例,组合成套件,找u开头.py结尾的文件
              discover = unittest.defaultTestLoader.discover(start_dir=case_dir, pattern='u*.py')


              # 运行套件
              runner = unittest.TextTestRunner()
              runner.run(discover)
              运行结果:

              三、总结
              • skip装饰器
                • 通过@unittest.skip进行调用
                • @unittest.skip:无条件跳过该用例执行
                • @unittest.skipif:当if条件为真时,跳过
                • @unittest.skipUnless:与skipif相反,当条件为假的时候,跳过
                • @unittest.expectedFailure:当用例报错时,系统选择忽略
              • 测试套件与运行器
                • 创建套件
                  • suite = unittest.TestSuite()
                • 添加用例到套件
                  • 单个添加:通过用例的名称进行添加
                    • suite.addTest(('test开头的函数名1'))
                  • 批量添加:
                    • 通过用例集合来进行添加
                      • cases = [类名('test开头的函数名1'),类名('test开头的函数名2'),类名('test开头的函数名3')]
                    • 通过TestCase对象直接添加一整个UnitTest类
                      • suite.addTests(unittest.TestLoader().loadTestsFromTestCase(类名))
                    • 通过类名来进行添加
                      • suite.addTests(unittest.TestLoader().loadTestsFromName('文件名.类名'))
                    • 通过文件名来进行添加
                      • 获取路径
                      • 找到指定文件,组合成测试用例的套件来执行
                      • discover = unittest.defaultTestLoader.discover(start_dir=目录地址, pattern='文件名')
                • 运行套件
                  • runner = unittest.TextTestRunner()
                  • runner.run(套件名)

              “你的鼓励,是我继续的动力”
              文章转载自走向易富强之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论