Unittest单元测试框架之unittest的第三方库paramunittest参数化基础及应用

一、unittest参数化介绍

参数化测试用于当需要使用多组不同的测试数据测试同一个方法的时候
paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例
实现unittest参数化的方式有多种,如ddt、paramunittest等

 二、paramunittest模块安装

pip install paramunittest

三、示例

1、元组数据实现参数化

import unittest
import paramunittest # pip install paramunittest


# 参数化元组类型数据
@paramunittest.parametrized(
    (20,30,50),
    (30,40,70),
    (60,80,140)
)

class TestDemo(paramunittest.ParametrizedTestCase):

    def setParameters(self, numa,numb,result): # 把参数化传递到测试类中
        self.a = numa
        self.b = numb
        self.c = result

    def test_add_case(self):
        print("%d+%d=%d" % (self.a,self.b,self.c) )
        self.assertEqual(self.a+self.b, self.c)


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

执行以上代码,测试结果如下:

2、列表数据实现参数化

import unittest
import paramunittest # pip install paramunittest


# 参数化列表类型数据
@paramunittest.parametrized(
    [20,30,50],
    [30,40,70],
    [60,80,140]
)

class TestDemo(paramunittest.ParametrizedTestCase):

    def setParameters(self, numa,numb,result): # 把参数化传递到测试类中
        self.a = numa
        self.b = numb
        self.c = result

    def test_add_case(self):
        print("%d+%d=%d" % (self.a,self.b,self.c) )
        self.assertEqual(self.a+self.b, self.c)


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

执行以上代码,测试结果如下:

3、字典数据实现参数化

import unittest
import paramunittest # pip install paramunittest



# 参数化字典类型数据(字典中的key要和setParameters方法中的形参一致)
@paramunittest.parametrized(
    {"numa":20,"numb":30,"result":50},
    {"numa":30,"numb":40,"result":70},
    {"numa":60,"numb":80,"result":140}
)


class TestDemo(paramunittest.ParametrizedTestCase):

    def setParameters(self, numa,numb,result): # 把参数化传递到测试类中
        self.a = numa
        self.b = numb
        self.c = result

    def test_add_case(self):
        print("%d+%d=%d" % (self.a,self.b,self.c) )
        self.assertEqual(self.a+self.b, self.c)


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

执行以上代码,测试结果如下:

4、参数通过函数或者数据对象传入实现参数化

import unittest
import paramunittest # pip install paramunittest


# # 参数化:数据对象
# testdata = [
#     {"numa":20,"numb":30,"result":50},
#     {"numa":30,"numb":40,"result":70},
#     {"numa":60,"numb":80,"result":140}
#             ]
# # 参数化类型数据
# @paramunittest.parametrized(
#     *testdata
# )

# 参数化:函数
def get_data():
    return [{"numa":20,"numb":30,"result":50},
            {"numa":30,"numb":40,"result":70},
            {"numa":60,"numb":80,"result":140}]
# 参数化类型数据
@paramunittest.parametrized(
    *get_data()
)


class TestDemo(paramunittest.ParametrizedTestCase):

    def setParameters(self, numa,numb,result): # 把参数化传递到测试类中
        self.a = numa
        self.b = numb
        self.c = result

    def test_add_case(self):
        print("%d+%d=%d" % (self.a,self.b,self.c) )
        self.assertEqual(self.a+self.b, self.c)


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

执行以上代码,测试结果如下:

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值