IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> unittest框架(一) -> 正文阅读

[开发测试]unittest框架(一)

unittest测试框架:

unittest是Python自带的单元测试框架,不仅用于单元测试,还用于自动化测试。优点:能将多个用例一起运行;有丰富的断言;能够生成测试报告。

核心组成:

TestCase 测试用例,用于书写脚本,代码
TestSuite 测试套件 ,将多个测试用例组装到一起
TestRunner 测试执行 ,运行测试套件
TestLoader 测试加载,是测试套件的补充,也是用于组装测试用例
Fixture 测试夹具,是书写代码的一种结构

  • TestCase 测试用例
    使用步骤:
    1、导包 import unittest
    2、定义测试类,继承unittest.TestCase()
    3、定义测试方法 ,方法名一定要以test开头
    4、在这里插入图片描述
    在这里插入图片描述

  • TestSuite 测试套件和TestRunner 测试执行
    使用步骤:
    1、导包import unittest
    2、实例化套件对象 unittest.TestSuite()
    3、添加测试用例的测试方法
    #方法一(添加单个):套件对象.addTest(测试类名(‘测试方法名’))
    #方法二(添加测试类的所有测试方法):套件对象.addTest(unittest.makeSuite(测试类名)
    4、实例化执行对象 unittest.TextTestRunner()
    5、执行 执行对象.run(套件对象)
    ![
    TestLoader 测试加载
    当有多个测试类时,使用unittest.makeSuite()组装,显得冗余,TestLoader可以解决这个问题。

import unittest
   # 实例化加载对象 unittest.TestLoader()
   #将某路径下的所有测试类组装 discover(路径,文件名)
suite=unittest.TestLoader().discover('./','*.py')
   # 实例化执行对象,运行
unittest.TextTestRunner().run(suite)

Fixture 测试夹具

在这里插入图片描述
方法级Fixture

    #前置,在TestCase书写,下面的每个测试用例执行前调用一次
        def setUpClass(self):
                 pass
    #后置,在TestCase书写,下面的每个测试用例执行后调用一次
        def tearDownClass(self):
                 pass

类级Fixture

    #前置,在TestCase书写,测试类的所有测试方法执行前调用一次
    @classmethod
        def setUp(cls):
                 pass
    #后置,在TestCase书写,测试类的所有测试方法执行后调用一次
    @classmethod
        def tearDown(cls):
                 pass

模块级Fixture

		#前置,在这个代码文件只执行一次
      def setUpModule ():
            pass
		#后置 ,在这个代码文件只执行一次
      def tearDownModule ():
            pass

例:

# 简单定义一个login方法
def login(username, password):
    if username == 'admin' and password == '123456':
        return '登录成功'
    else:
        return '登录失败'
import unittest
from eee import login

class testEEE(unittest.TestCase):
    # 后置方法,下面的每一个测试用例方法调用后,会调用该方法
    def tearDown(self) -> None:
        if self.s=='登录成功':
            print('通过')
        else:
            print('不通过')
    # 测试用例的测试方法,
    def testLogin(self):
        self.s=login("admin",'123456')
    
    def testLogin1(self):
        self.s=login("aaa",'123456')

    def testLogin2(self):
        self.s=login("admin",'123123')

    def testLogin3(self):
        self.s=login("aaa",'123123')

    def testLogin4(self):
        self.s=login("",'123456')
 



-------------------------------------------------------------------------------------
Launching unittests with arguments python -m unittest TestCaseEEE.testEEE in D:\pythonProject\untitled4

通过
不通过
不通过
不通过
不通过


Ran 5 tests in 0.003s

OK

Process finished with exit code 0


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:35:58  更:2022-08-19 19:36:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:48:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码