pytest—pytest.mark.parametrize的使用
一、前言
我们这篇文章呢来讲讲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的使用相关推荐
- pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
前言:pytest.mark.parametrize装饰器可以实现测试用例参数化. parametrizing 1. 下面是一个简单是实例,检查一定的输入和期望输出测试功能的典型例子 2. 标记单 ...
- Python Pytest装饰器@pytest.mark.parametrize详解
Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 如:@pytest.mark.parametrize('请求方式,接口地 ...
- Pytest装饰器@pytest.mark.parametrize一键生成接口正交试验用例
我们在做接口测试时,有时会遇到涉及用例特别多的时候,每个用例都去手动调一遍,很费时费力,也是不现实的,这篇文章我们就解决下这种费时费力的情况. 一.业务需求 某所大学通信系共2个班级,刚考完某一门课程 ...
- Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三)
一.测试用例用excel管理,存放地址:C:\Users\wangli\PycharmProjects\Test\test\files\apiCase.xls 二.代码实现如下: 1.封装读取exce ...
- Python Pytest装饰器@pytest.mark.parametrize多样参数化(二)
Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 1.第一个参数是字符串,多个参数中间用逗号隔开 2.第二个参数是list ...
- pytest.mark.parametrize()基本用法
@pytest.mark.parametrize()基本用法 数据驱动 :其实就是把我们测试用例的数据放到excel,yaml,csv,mysql,然后通过去改变数据达到改变测试用例的执行结果 . @ ...
- python pytest mark.parametrize
虽然可以在测试函数内循环遍历所有参数的可能性,但一旦失败就终止了,即使try结果也比较南分析,所以可以使用pytest.mark.parametrize(argnames, argvalues) # ...
- 第十三:Pytest参数化-@pytest.mark.parametrize装饰器来实现数据驱动测试
1.unittest单元测试框架使用DDT进行数据驱动测试,那么Pytest框架有没有数据驱动呢? 2.Pytest是使用@pytest.mark.parametrize装饰器来实现数据驱动测试的. ...
- 【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 ...
- 软件测试 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的配置文件方式(最经常 ...
最新文章
- 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
- boost::hana::slice_c用法的测试程序
- spring boot 源码_SpringBoot2.1.x源码环境搭建详解
- [reprint]如何编写引导程序 Hello World
- 微软的FreeBSD社区推广活动 北京站,你没看错!微软现在是一家名副其实的开源公司
- php的list函数的使用,php list函数如何使用
- 用队列和栈的知识点解决迷宫问题
- yudian温控表a1温度怎么补偿_贴片电容怎么确定型号
- 21天学通C语言-学习笔记(12)
- 将数组文件转换成bin格式文件
- 语音识别算法原理文档整理(二)
- 从零学光学设计 zemax中的三种优化
- Android手机OCR+扫描APP
- 入门级测试Kotlin实现PopWindow弹窗代码
- 关于LNK2005	_main 已经在 某某某.obj 中定义的问题
- Java毕业设计:人民医院体检预约系统(java+springboot+vue+mysql)
- apk+html启动页,案例——APP启动页
- 朱子治家格言(清朝·朱柏庐)
- 解线性方程组迭代法之Guass-Seidel迭代法及其算法实现
- 无法为表空间 某某XX 中的段创建 INITIAL区
热门文章
- RHSCA红帽认证系统管理员
- K8s第七篇授权认证
- Makefile的嵌套目录示例
- [乡土民间故事_徐苟三传奇]第卅三回_考学问哄走夺馆人
- 【Java Web】jsp与jspf文件的区别
- 2017 php经典面试题,2017最新PHP经典面试题目汇总(上篇)
- Java毕设项目电商平台客流统计系统(java+VUE+Mybatis+Maven+Mysql)
- 粉丝投稿 | Openvino2020.2.117在LattePanda上的安装和demo演示
- 如何查看linux服务器是否为amd64架构还是x86_64架构
- Kafka中HW和LEO增长的原理是什么?流程是怎样的?