栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python自带单元测试框架unittest

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python自带单元测试框架unittest

 一、unittest框架4大核心组件

  1. TestCase:定义你的测试用例
  2. TestSuit:收集测试用例
  3. TestRunner:执行测试用例
  4. TestFixture:测试脚手架,前置条件,后置条件,根据实际情况选择使用

二、unittest工作流程

  1. 使用TestCase按照规则写测试用例,每一个函数为一个测试用例
  2. TestSuit:创建一个测试套件,收集测试用例到测试套件
  3. TestRunner统一执行测试套件里面的用例
  4. 生成测试报告

三、测试用例编写

  1. 导入模块:import unittest,测试用例必须写在测试类里面
  2. 创建一个测试类,继承unittest.TestCase
  3. 测试用例以test开头
  4. 执行入口:unittest.main()
  5. 测试用例包含哪些东西
    1. 前置条件(token、session):函数级别(setup、teardown)、类级别(setUpClass、tearDownClass)

    2. 测试步骤(ddt+接口请求+提取全局变量)

    3. 测试断言(利用unittest框架自带的断言)

    4. 后置清理(是否要清理掉测试数据,删除测试,关闭各种文件的连接(数据库))

    5. 日志收集(还原整个测试过程)

  6. 用例执行顺序

    1. 按照测试用例名称的Ascii码大小进行执行

    2. chr():Ascii---字符、ord():字符---Ascii

四、测试用例收集与执行         

五、测试报告

六、代码演示

import unittest


class TestDemo(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_01(self):
        print("test1")

    def test_02(self):
        print("test2")

    def test_03(self):
        print('test3')

    # 错误的用例
    def test_demo(self):
        print('test4')


if __name__ == '__main__':
    unittest.main()

一、用例收集与执行

  1. 另起一个页面对用例进行收集和执行

二、用例收集

  1. 收集单个、多个测试用例      

三、代码演示

import unittest
from day15.test_case import TestDemo

# 创建测试套件
suite = unittest.TestSuite()
# 添加测试用例到测试套件
suite.addTest(TestDemo('test_01'))
# suite.addTests(TestDemo('test_01'),TestDemo('test_02'))
# suite.addTest(unittest.makeSuite(TestDemo))
# 运行测试用例
runner = unittest.TextTestRunner()
runner.run(suite)

四、测试报告

import unittest
import os
from BeautifulReport import BeautifulReport
from unittestreport import TestRunner

# 收集测试用例
# res = unittest.TestLoader().loadTestsFromTestCase()
# 指定收集某个目录下的某个测试用例文件的测试用例
dir_path = os.path.dirname(__file__)
suite = unittest.defaultTestLoader.discover(start_dir=dir_path)
# start_dir:测试用例目录
# pattern='test*.py'
runner = unittest.TextTestRunner()
runner.run(suite)

# Html测试报告
# br = BeautifulReport(suites=suite)
# br.report(description='演示',filename='test_report.html')

# unittestreport 收集测试报告
TestRunner = TestRunner(
    suite=suite,
    filename="report.html",
    report_dir=".",
    title='测试报告',
    tester='测试员',
    desc="XX项目测试生成的报告",
    templates=1

)
runner.run()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号