pytest使用@pytest.mark.parametrize()实现参数化的示例代码

目录
  • 1.方法详情:
  • 2.使用方法
    • 2.1.一个列表中一个参数多个值
    • 2.2.多参数多值
    • 2.3.多个参数混合使用
    • 2.4.传入字典数据

1.方法详情:

parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)
常用参数:
argnames:参数名
argvalues:参数值(可以为list和tuple,或者字典列表,字典元组等),参数值有N个,用例就会执行N次。

2.使用方法

2.1.一个列表中一个参数多个值

示例代码: 

data_list1 = ['data1', 'data2', 'data3', 'data4']
@pytest.mark.parametrize('data', data_list1)
def test_01(data):
    print(data)

运行结果:  

2.2.多参数多值

示例代码:

data_list2 = [('zhang1', '123456'), ('zhang2', '654321'), ('zhang3', '456789')]
@pytest.mark.parametrize('username, pwd', data_list2)
def test_02(username, pwd):
    print(username + ':' + pwd)

运行结果:  

2.3.多个参数混合使用

示例代码:

data_list3 = ['zhang', 'li']
data_list4 = ['wang', 'liu']
data_list5 = ['zhao', 'qian']
@pytest.mark.parametrize('a', data_list3)
@pytest.mark.parametrize('b', data_list4)
@pytest.mark.parametrize('c', data_list5)
def test_03(a, b, c):
    print('组合后的结果为', {a}, {b}, {c})

2.4.传入字典数据

示例代码:

dict_data = ({'username': 'zhang', 'password': '123456'}, {'username': 'li', 'password': '654321'})
@pytest.mark.parametrize('data', dict_data)
def test_04(data):
    print(data.get('username') + ':' + data.get('password'))
    # print(data['username'] + ':' + data['password'])

运行结果:  

到此这篇关于pytest使用@pytest.mark.parametrize()实现参数化的文章就介绍到这了,更多相关pytest参数化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Pytest参数化parametrize使用代码实例

    这篇文章主要介绍了Pytest参数化parametrize使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在测试用例的前面加上: @pytest.mark.parametrize("参数名",列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数. 列表数据:一组测试数据. 示例代码: import pytest test_datas = [ (11, 22, 33), (22, 33, 55) ] datas_di

  • pytest使用parametrize将参数化变量传递到fixture

    目录 一.交代应用场景 二.使用@pytest.mark.parametrize.以及fixture的调用来解决 1. /demo_top/conftest.py 2. /demo_top/demo_sub/conftest.py 3. /demo_top/demo_sub/test_case.py 参数传递 fixture调用fixture 分享一个关于在pytest中,如何将测试用例文件中的变量传递到fixture函数. 一.交代应用场景 目前组内的项目,在根目录下是有一个conftest.

  • Pytest单元测试框架如何实现参数化

    1.传入单个参数 pytest.mark.parametrize(argnames,argvalues) argnames:参数名 argvalues:参数对应的值,类型必须为可迭代类型,一般为 list import pytest class Test01(): @pytest.mark.parametrize("school",["深圳多测师","广州多测师","上海多测师"]) def test_dcs(self,sch

  • pytest实现测试用例参数化

    背景 本文总结pytest的测试用例参数化. 说明 软件测试中,输入相应值,检查期望值,是常见测试方法. 在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据. pytest的测试用例参数化使用如下装饰器即可完成. @pytest.mark.parametrize(argnames, argvalues) # 参数: # argnames:以逗号分隔的字符串 # argvaluse: 参数值列表,若有多个参数,一组参数以元组形式存在,包

  • Python基础教程之pytest参数化详解

    目录 前言 源代码分析 装饰测试类 装饰测试函数 单个数据 一组数据 组合数据 标记用例 嵌套字典 增加测试结果可读性 总结 前言 上篇博文介绍过,pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升.在实际 工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余.这里,我们来了解一下 @pytest.mark.parametrize装饰器,可以很好的解决上述问题. 源代码分析 def parametrize(self,argnames, argvalues, indir

  • pytest fixtures函数及测试函数的参数化解读

    目录 pytest fixtures测试函数参数化 一.@pytest.mark.parametrize:参数化测试函数 1. 常规用法 2. 在参数化中标记单个测试实例 3. 多个参数化组合,笛卡尔积 二.用钩子函数pytest_generate_tests example拓展 总结 pytest fixtures测试函数参数化 Pytest会在以下几个级别启用测试参数化: pytest.fixture(),可以对fixture函数进行参数化. @pytest.mark.parametrize

  • pytest使用@pytest.mark.parametrize()实现参数化的示例代码

    目录 1.方法详情: 2.使用方法 2.1.一个列表中一个参数多个值 2.2.多参数多值 2.3.多个参数混合使用 2.4.传入字典数据 1.方法详情: parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)常用参数:argnames:参数名argvalues:参数值(可以为list和tuple,或者字典列表,字典元组等),参数值有N个,用例就会执行N次. 2.使用方法 2.1.一个列表中一个参数多个值 示例代码: d

  • Python Pytest装饰器@pytest.mark.parametrize详解

    Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 如:@pytest.mark.parametrize('请求方式,接口地址,传参,预期结果',[('get','www.baidu.com','{"page":1}','{"code":0,"msg":"成功"})',('post','www.baidu.com','{"page"

  • Pytest如何使用mark的方法

    目录 一.常见的内置markers 二.查看所有markers 三.注册自定义marks 四.对未注册mark的限制 一.常见的内置markers usefixtures - 为测试函数或者测试类知名使用那些fixture filterwarnings - 为一个测试函数过滤一个指定的告警 skip - 跳过一个测试函数 skipif - 如果满足条件就跳过测试函数 xfail - 标记用例失败 parametrize - 参数化 二.查看所有markers 如下,可以查看到当前环境中的所有ma

  • pytest配置文件pytest.ini的详细使用

    前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行 非test文件 pytest里面有些文件是非test文件 pytest.ini:pytest的主配置文件,可以改变pytest的默认行为 conftest.py:测试用例的一些fixture配置 _init_.py:识别该文件夹为python的package包 查看pytest.ini的配置选项 cmd执行 pytest --help 找到这部分内容 [pyte

  • pytest配置文件pytest.ini的具体使用

    目录 前言 pytest.ini的内容构成 配置项markers 配置项testpaths 配置项addopts 前言 说到配置,大家可能想到的是不经常更改的内容,比如Django里的settings.py文件,或者我们做自动化的时候,把测试环境的域名和正式环境的域名放到一个配置文件里,所有的接口都从这个文件里读取.这样,如果有一天,我们的域名变了,我们只需要更改配置里的域名就可以了.pytest里也有几个配置文件. pytest.ini:pytest的主配置文件,可以改变pytest的默认行为

  • Pytest+Yaml+Excel 接口自动化测试框架的实现示例

    目录 一.框架架构 二.项目目录结构 三.框架功能说明 四.核心逻辑说明 配置文件 输出目录 请求工具类 代码编写case 程序主入口 执行记录 一.框架架构 二.项目目录结构 三.框架功能说明 解决痛点: 通过session会话方式,解决了登录之后cookie关联处理 框架天然支持接口动态传参.关联灵活处理 支持Excel.Yaml文件格式编写接口用例,通过简单配置框架自动读取并执行 执行环境一键切换,解决多环境相互影响问题 支持http/https协议各种请求.传参类型接口 响应数据格式支持

  • python接口自动化之正则用例参数化的示例详解

    目录 前言 一.正则表达式语法 1.1表示单字符 1.2表示数量 1.2.1匹配分组 1.3 表示边界 二.贪婪模式 三.re模块 3.1 re.findall() 3.2re.search() 3.3 re.match() 3.4re.sub() 四.用例参数化 总结 前言 ​我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据. ​正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(Regular Expression,在代码中

  • python中的测试框架

    一.测试常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过setUp()和setDown()方法处理: 编写执行快速的测试代码.在某些情况下,测试需要加载复杂的数据结构,而且每次执行的时候都要重新加载,这个时候测试执行会很慢.因此,在这种情况下,可以将这种测试放置一个后台的任务中. 在编写代码前执行完整的测试,而且在编写代码后再重新执行一次.这样能保证你后来

随机推荐