python+unittest单元测试框架详解

注意:
接口测试的本质:测试类里面的函数,通过数据驱动
单元测试的本质:测试函数,代码级别,通过代码级别
单元测试框架:unittest+python

一、unittest简介

python+unittest+HTMLTestRunner写的,这套框架主要是针对单元测试的。其中HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 html的测试报告,而unittest作为标准python中的一个模块,是其它框架和工具的基础,所以了解unittest的原理对理解这套框架非常重要

二、基础流程

功能测试步骤:
1、写用例(TestCase)
2、执行用例(TestSuite:存储用例,TestLoader:找用例,加载用例,存储到TestSuite里面
3、对比实例结果,预期结果,判断用例是否通过(断言Assert)
4、出具测试报告(TextTestRunner)

如下,写个简单的加法/乘法运算,来说明单元测试:
1、框架:
在这里插入图片描述
2、Math_Method脚本:

class MathMethod(object):
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def add(self):
        return (self.a+self.b)
    def multi(self):
        return self.a * self.b

3、用例脚本

#写一个测试类,对我们写的MathMethod进行单元测试
import unittest
from class_5_18.Math_Method import MathMethod  #测试目标类
class TestMathMethod(unittest.TestCase):
    #编写测试用例
    #一个测试用例就是一个函数,不能传参
    #所有的用例都是test开头:test_
    def test_add_two_positive(self): #两个正数相加
        res = MathMethod(1,2).add()
        print ("1+2的结果是:%s"%res)
        #添加断言,期望结果与实际结果比对,一致通过,不一致失败
        self.assertNotEqual(3,res,"测试成功")   #断言里面的msg是用例执行失败了,才会显示

class TestMutli(unittest.TestCase):
        def test_mutli_two_positive(self):  # 两个正数相乘
            res = MathMethod(1,2).multi()
            print ("1*2的结果是:%s"% res)

    #运行顺序按照ASCII码执行
if __name__ == "__mian__":
    unittest.main()

4.1、执行用例脚本(

import unittest
import HTMLTestRunner
from class_5_18.class_01 import TestMathMethod
suite = unittest.TestSuite()  #存储用例
#只执行一条
suite.addTest(TestMathMethod("test_add_two_positive")) #通过函数名执行用例
with open("test.txt","w+") as file:
    runner = unittest.TextTestRunner(stream=file, verbosity=1)  # verbosity表示打印的结果详细情况
    runner.run(suite)

此方法只能通过函数名执行用例,如果用例有很多,几千个的话,此方法就行不通了
4.2、执行用例(通过loadTestsFromTestCase方法,可执行一个类名里面的全部用例)

import unittest
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值