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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest是一种用于Python单元测试框架,它与Python自带unittest框架相似,但使用起来更简洁高效。根据官方网站的介绍,pytest具有以下特点:简洁、高效、易于使用、灵活、支持参数化测试、自动发现测试用例、支持插件扩展等。 pytest可以通过安装pytest包来使用,并且可以在终端中直接运行测试文件。pytest还提供了许多命令行选项和配置文件选项来管理测试的执行方式和结果输出。例如,可以使用pytest.ini配置文件来设置pytest的运行选项,如指定测试文件的路径、测试文件的命名规则、测试类和测试方法的命名规则等。 总的来说,pytest是一个功能强大、简洁易用的Python单元测试框架,可以帮助开发者编写和运行高效的单元测试。它提供了丰富的功能和灵活的配置选项,使得测试工作更加方便和高效。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python单元测试框架pytest简介](https://download.csdn.net/download/weixin_38717579/16053295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python单元测试框架—pytest](https://blog.csdn.net/qq_22895113/article/details/126292624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值