一、前言

我们这篇文章呢来讲讲pytest.mark.parametrize的使用,大家都知道Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT,废话我就不多说了,咱么直接开始吧。

二、如何使用

  • 第一个参数是字符串,多个参数中间用逗号隔开
  • 第二个参数是list,多组数据用元组类型;传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应
  • 传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化
  • 传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化

1、一个参数一个值

示例代码如下:

Python

# 一个参数一个值
@pytest.mark.parametrize("input", ["输入值"])
def test_case1(input):
    print("\n" + input)
    assert input == "输入值

运行结果如下图:

2、一个参数多个值

示例代码如下:

python

@pytest.mark.parametrize("input", ["输入值1", "输入值2", "输入值3", "输入值4", "输入值5"])
def test_case2(input):print("\n" + input)assert '输入值' in input

运行结果如下:

3、多参数多值

示例代码如下:

python

@pytest.mark.parametrize("userName,passWord",[("xiaqiang", "123456"), ("rose", "123456"), ("jone", "123456"), ("Alix", "123456")])
def test_login(userName, passWord):print(userName + " : " + passWord)assert userName == 'rose'

运行结果如下:

4、多个参数的混合使用

有点类似笛卡尔积的意思,示例代码如下:

python

data1 = [1, 2]
data2 = ["python", "java"]
data3 = ["暴", "躁", "测", "试", "君"]@pytest.mark.parametrize("a", data1)
@pytest.mark.parametrize("b", data2)
@pytest.mark.parametrize("c", data3)
def test_case3(a, b, c):print(f"生成新的数据组合为:[{a} {b} {c}]")

运行结果如下:

5、参数化 ,传入字典数据

示例代码如下:

python

json=({"username":"alex","password":"123456"},{"username":"rongrong","password":"123456"})
@pytest.mark.parametrize('json', json)
def test_parametrize_1(json):print(f'字典为\n{json}')print(f'username : {json["username"]}, password : {json["password"]}')

运行结果如下:

6、参数化集合标记的使用

示例代码如下:

python

@pytest.mark.parametrize("user,pwd",[("xiaoqiang", "123456"), ("rose", "123456"),pytest.param("jone", "123456", marks=pytest.mark.xfail),pytest.param("Alex", "123456", marks=pytest.mark.skip)])
def test_login(user, pwd):print(user + " : " + pwd)assert user == "rose"

运行结果如下:

好了今天的分享就到这里了,喜欢的可以给我点点关注和点赞哟。

pytest—pytest.mark.parametrize的使用相关推荐

  1. pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化

    前言:pytest.mark.parametrize装饰器可以实现测试用例参数化. parametrizing 1.  下面是一个简单是实例,检查一定的输入和期望输出测试功能的典型例子 2.  标记单 ...

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

    Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 如:@pytest.mark.parametrize('请求方式,接口地 ...

  3. Pytest装饰器@pytest.mark.parametrize一键生成接口正交试验用例

    我们在做接口测试时,有时会遇到涉及用例特别多的时候,每个用例都去手动调一遍,很费时费力,也是不现实的,这篇文章我们就解决下这种费时费力的情况. 一.业务需求 某所大学通信系共2个班级,刚考完某一门课程 ...

  4. Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三)

    一.测试用例用excel管理,存放地址:C:\Users\wangli\PycharmProjects\Test\test\files\apiCase.xls 二.代码实现如下: 1.封装读取exce ...

  5. Python Pytest装饰器@pytest.mark.parametrize多样参数化(二)

    Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 1.第一个参数是字符串,多个参数中间用逗号隔开 2.第二个参数是list ...

  6. pytest.mark.parametrize()基本用法

    @pytest.mark.parametrize()基本用法 数据驱动 :其实就是把我们测试用例的数据放到excel,yaml,csv,mysql,然后通过去改变数据达到改变测试用例的执行结果 . @ ...

  7. python pytest mark.parametrize

    虽然可以在测试函数内循环遍历所有参数的可能性,但一旦失败就终止了,即使try结果也比较南分析,所以可以使用pytest.mark.parametrize(argnames, argvalues) # ...

  8. 第十三:Pytest参数化-@pytest.mark.parametrize装饰器来实现数据驱动测试

    1.unittest单元测试框架使用DDT进行数据驱动测试,那么Pytest框架有没有数据驱动呢? 2.Pytest是使用@pytest.mark.parametrize装饰器来实现数据驱动测试的. ...

  9. 【pytest】(详解)@pytest.mark.parametrize: 参数化测试函数

    目录 1.快速入门 1.1介绍 1.2代码示例 1.3运行结果 1.4结果分析 2.装饰测试类 2.1介绍 2.2示例代码 2.3.运行结果 2.4结果分析 3.全局变量方式进行参数化 3.1介绍 3 ...

  10. 软件测试 pytest pytest的命名规则 用例的前后置 conftest.py 定制allure报告 @pytest.mark.parametrize()装饰器作数据驱动

    文章目录 1 pytest简介 1.1 pytest的命名规则 1.2 运行方式 1.2.1 主函数方式(少用) 1.2.2 命令行方式(少用) 1.2.3 pytest.ini的配置文件方式(最经常 ...

最新文章

  1. 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
  2. boost::hana::slice_c用法的测试程序
  3. spring boot 源码_SpringBoot2.1.x源码环境搭建详解
  4. [reprint]如何编写引导程序 Hello World
  5. 微软的FreeBSD社区推广活动 北京站,你没看错!微软现在是一家名副其实的开源公司
  6. php的list函数的使用,php list函数如何使用
  7. 用队列和栈的知识点解决迷宫问题
  8. yudian温控表a1温度怎么补偿_贴片电容怎么确定型号
  9. 21天学通C语言-学习笔记(12)
  10. 将数组文件转换成bin格式文件
  11. 语音识别算法原理文档整理(二)
  12. 从零学光学设计 zemax中的三种优化
  13. Android手机OCR+扫描APP
  14. 入门级测试Kotlin实现PopWindow弹窗代码
  15. 关于LNK2005 _main 已经在 某某某.obj 中定义的问题
  16. Java毕业设计:人民医院体检预约系统(java+springboot+vue+mysql)
  17. apk+html启动页,案例——APP启动页
  18. 朱子治家格言(清朝·朱柏庐)
  19. 解线性方程组迭代法之Guass-Seidel迭代法及其算法实现
  20. 无法为表空间 某某XX 中的段创建 INITIAL区

热门文章

  1. RHSCA红帽认证系统管理员
  2. K8s第七篇授权认证
  3. Makefile的嵌套目录示例
  4. [乡土民间故事_徐苟三传奇]第卅三回_考学问哄走夺馆人
  5. 【Java Web】jsp与jspf文件的区别
  6. 2017 php经典面试题,2017最新PHP经典面试题目汇总(上篇)
  7. Java毕设项目电商平台客流统计系统(java+VUE+Mybatis+Maven+Mysql)
  8. 粉丝投稿 | Openvino2020.2.117在LattePanda上的安装和demo演示
  9. 如何查看linux服务器是否为amd64架构还是x86_64架构
  10. Kafka中HW和LEO增长的原理是什么?流程是怎样的?