快捷搜索:  汽车  科技

unittest自动化框架有几部分(unittest自动化测试框架核心要素以及应用)

unittest自动化框架有几部分(unittest自动化测试框架核心要素以及应用)  test fixure:测试夹具,用于测试用例环境的搭建和销毁。即用例测试前准备环境的搭建(SetUp前置条件),测试后环境的还原(TearDown后置条件),比如测试前需要登录获取token等就是测试用例需要的环境,运行完后执行下一个用例前需要还原环境,以免影响下一条用例的测试结果。  test case:就是我们的测试用例,unittest中提供了一个基本类TestCase,可以用来创建新的测试用例,一个TestCase的实例就是一个测试用例;unittest中测试用例方法都是以test开头的,且执行顺序会按照方法名的ASCII值排序。  用法和django.test.TestCase类似  1.1、unitest介绍和核心要素  自动化测试最初接触的就是python中的unitest框架,因为它是python自带的一套测试框架,学习起来也相对较容易,下面是unitest框架的四个

 1. unittest核心要素

  ·unittest介绍

  测试框架,不仅仅用于单元测试

  python自动的测试包

  用法和django.test.TestCase类似

  1.1、unitest介绍和核心要素

  自动化测试最初接触的就是python中的unitest框架,因为它是python自带的一套测试框架,学习起来也相对较容易,下面是unitest框架的四个概念(较为一目了然):

unittest自动化框架有几部分(unittest自动化测试框架核心要素以及应用)(1)

  test case:就是我们的测试用例,unittest中提供了一个基本类TestCase,可以用来创建新的测试用例,一个TestCase的实例就是一个测试用例;unittest中测试用例方法都是以test开头的,且执行顺序会按照方法名的ASCII值排序。

  test fixure:测试夹具,用于测试用例环境的搭建和销毁。即用例测试前准备环境的搭建(SetUp前置条件),测试后环境的还原(TearDown后置条件),比如测试前需要登录获取token等就是测试用例需要的环境,运行完后执行下一个用例前需要还原环境,以免影响下一条用例的测试结果。

  test suite:测试套件,用来把需要一起执行的测试用例集中放到一块执行,相当于一个篮子。我们可以使用TestLoader来加载测试用例到测试套件中。

  test runner:用来执行测试用例的,并返回测试用例的执行结果。它还可以用图形或者文本接口,把返回的测试结果更形象的展现出来,如:HTMLTestRunner。

  1.2、unittest核心要素的使用

  # ---*--- 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_1")

    def test_1(self):

   print("test_1")

  if __name__ == '__main__':

  #类的外面

  #2、容器,容器添加测试用例

   suit = unittest.BaseTestSuite()

  #测试用例的执行顺序,按添加的顺序执行

   suit.addTest(MyTest('test_1'))

   suit.addTest(MyTest('test_1'))

  #3、运行容器中的测试用例

   runner = unittest.TextTestRunner()

   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)

猜您喜欢: