unittest框架

一、unittest框架基本使用(是python自带的一个单元测试框架)

  1、框架:为解决一类事情的功能集合

 

 

二、TestCase 测试用例

  书写真正的用例代码(脚本)

  使用:1、导包。2、定义测试类。3、书写测试方法。4、执行

  注意:

    代码文件名字,要满足标识符规则。

    代码文件名不要使用中文。

    右键运行没有 unittest for..... (新建一个.py 文件,将代码再复制在里面,就可以执行了)

    左上角的edit,里面设置

'''
TestCase测试使用
'''
import unittest

#书写测试类
class TestDemo(unittest.TestCase):
    #书写测试方法,方法名必须以test开头
    def test_method1(self):
        print("测试方法一")
    def test_method2(self):
        print("测试方法二")

#执行方式一:(在类名或者方法名后面点击右键运行)方法名代表只执行那一个方法。在类名后面执行,会执行一个类所有

#执行方式二:
if __name__ == "__main__":
    unittest.main()

 

三、TestSuite 测试套件(批量执行测试用例)和 TestRunner(测试执行)

  TestSuite:将多条脚本用例集合到一起,就是套件,用来组装用例

  TestRunner:用来执行套件对象

 

import unittest
#导入用例文件
from tools import TestDemo
from tool2 import TestDemo1

#实例化套件对象
suite = unittest.TestSuite()
#添加用例方法
#添加整个测试类:suite.addTest(unittest.makeSuite(TestDemo))  可以将整个测试类的方法加入。但不同Python版本中可能没提示

suite.addTest(TestDemo('test_method1'))
suite.addTest(TestDemo('test_method2'))
suite.addTest(TestDemo1('test_method1_1'))
suite.addTest(TestDemo1('test_method2_2'))

#实例化执行对象
runner = unittest.TextTestRunner()
#执行对象执行
runner.run(suite)

 

四、TestLoader 测试加载

  作用和 TestSuite 作用一样,组装用例代码,同样需要 TextTestRunner() 执行

 

import unittest

#实例化加载对象并加载用例,得到套件对象
#suite = unittest.TestLoader().discover("用例所在目录","用例代码文件名*.py")
suite = unittest.TestLoader().discover("./","too*.py")     #*就是和正则一样的匹配

#实例化执行对象
runner = unittest.TextTestRunner()
runner.run(suite)
#上面两行代码等于下面一行
unittest.TextTestRunner().run()

 

五、Fixture 说明

  代码结构,在用例执行前后会自动执行的代码结构

  分为三种

    方法级别:在每个用例执行前后,都会自动调用。方法名都是固定的

      def setUp(self):    #前置

      def tearDown(self)    #后置

    类级别:在类中所有的测试方法执行前后都会自动执行的代码。一个类名只执行一次。比如打开和关闭浏览器。需要写作类方法

      @classmethod

      def setUpClass(cls):   #前置

      @classmethod

      def tearDownClass(cls):   #后置

    模块级别:(了解)模块就是代码文件

import unittest

#创建测试类
class Test_1(unittest.TestCase):
    def setUp(self) -> None:
        print("打开网页,点击登录")
    def tearDown(self) -> None:
        print("关闭网页")
    @classmethod
    def setUpClass(cls) -> None:
        print("打开浏览器")
    @classmethod
    def tearDownClass(cls) -> None:
        print("关闭浏览器")
    def test_001(self):
        print("测试方法一")

 

      

 

  

posted @ 2023-04-04 10:10  新入世界的小白  阅读(26)  评论(0编辑  收藏  举报