unittest篇8-参数化(paramunittest)

前言

上一篇博客我们讲述ddt数据驱动,ddt能够使得输入M组数据,ddt框架会自动构造出M个测试用例。在unittest我们还有一个模块也可以实现它,就是paramunittest模块。也能实现和ddt一样的效果

1、paramunittest安装

pip install paramunittest

unittest篇8-参数化(paramunittest)_第1张图片

2.使用

2.1 代码

下面我使用聚合报告的‘历史上的今天’的api为例;

import paramunittest
import unittest
import requests
@paramunittest.parametrized(
    {
     "month": 1, "day": 25},
    {
     "month": 1, "day": 26},
    {
     "month": 1, "day": 27},
    {
     "month": 1, "day": 28}
)

class TestDttDemo(unittest.TestCase):
    def setParameters(self,month,day):
    # 这里接受的参数month,day必须和前面定义的元祖里面嵌套字典字段保持一致
        self.month = month
        self.day = day

    def setUp(self) -> None:
        print('开始')

    def tearDown(self) -> None:
        print('结束')

    def test_Api(self):
        url = 'http://api.juheapi.com/japi/toh'
        data = {
     
            "key": "7486da7f50cd55e6774fb3311b526d8a",
            "v": '1.0',
            "month": self.month,
            "day": self.day
        }
        response = requests.post(url=url,data=data)
        print(response.json())

if __name__ == '__main__':
    # verbosity = 2 可以显示用例的详情
    unittest.main(verbosity=2)

2.2 分析

  • 1、参数需要使用@paramunittest.parametrized修饰;
  • 2、参数可以传字典格式,也可以传入元祖类型都是可以的;
  • 3、用例的执行顺序是按照参数里面的顺序进行执行的;
  • 4、接收参数必须使用setParameters方法去接收参数;

3、结果

unittest篇8-参数化(paramunittest)_第2张图片
大家可以尝试一下将结果写入BeautifulReport报告中,这里我就不多此一举了。如果不会可以看一下博主前面生成测试报告的博客,对照‘依葫芦画瓢’即可

ps :

1、后续内容继续深入unittest的学习;
2、有什么问题,欢迎大家评论区评论交流!谢谢大家!
3、如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

你可能感兴趣的:(unittest,python)