pytest框架实现参数化-params参数化 和 parametrize 参数化

一、@pytest.fixture(params=参数值) ,实现参数化

Fixture参数之params参数可实现参数化,参数值,可以为list和tuple,或者字典列表,字典元祖等。

@pytest.fixture(params=参数值)
# 参数值,可以为list和tuple,或者字典列表,字典元祖等

举例:

import pytest

# 测试数据
test_data = ["user1", "user2"]


@pytest.fixture(params=test_data)
def register_users(request):  # 特别注意:这里的request参数名是固定的,然后request.param的param没有s哦
    # 获取当前的测试数据
    user = request.param  # request.param 用于获取测试的请求参数
    print("拿着这个账号%s 去注册" % user)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest中的参数化装饰器parametrize可以用于为函数或类添加多个参数组合,生成多个测试用例。参数的组合是根据给定的参数值列表来生成的。 具体使用方式如下: 1. 使用装饰器@parametrize来标记需要参数化的测试函数或测试类。 2. 在@parametrize装饰器中,通过指定参数名和对应的参数值列表来定义参数组合。参数值列表可以是一个可迭代对象,例如列表或元组。 3. 当有多个参数需要参数化时,可以使用多个@parametrize装饰器,每个装饰器对应一个参数。 4. 最终生成的测试用例数量为各个参数值列表长度的乘积。 例如,如果有两个参数a和b,分别有两个和三个取值,那么最终生成的测试用例数量就是2*3=6。 示例代码如下: ```python import pytest data1 = [1, 2] data2 = ['a', 'b', 'c'] @pytest.mark.parametrize('test1', data1) @pytest.mark.parametrize('test2', data2) def test_param(test1, test2): print('\n测试数据:{}-{}'.format(test1, test2)) ``` 在上述示例中,test_param函数有两个参数test1和test2,它们分别可以取data1和data2中的值。最终生成的测试用例数量为2*3=6,每个用例中的参数取值为(1, 'a')、(1, 'b')、(1, 'c')、(2, 'a')、(2, 'b')、(2, 'c')。 另外,参数化装饰器还支持指定参数名,用来在测试用例中展示参数值的名称。例如: ```python import pytest data = [(1, 2, 3), (4, 5, 9)] @pytest.mark.parametrize('a, b, expect', data) def test_param(a, b, expect): print('\n测试数据:{} {}'.format(a, b)) assert a + b == expect ``` 在上述示例中,test_param函数有三个参数a、b和expect,它们分别可以取data中的三元组的值。最终生成的测试用例数量为2,每个用例中的参数取值为(1, 2, 3)和(4, 5, 9)。 通过使用参数化装饰器@parametrize,可以方便地生成多个测试用例,并且在测试报告中展示参数值的组合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python测试框架pytest(17)参数化parametrize](https://blog.csdn.net/wangmcn/article/details/120956918)[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_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pytestparametrize参数化](https://blog.csdn.net/ifling99/article/details/126236312)[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_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值