pytest_参数化parametrize
前言
pytest.mark.parametrize装饰器可以实现测试用例参数化。
parametrizing
1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子
import pytest@pytest.mark.parametrize("test_input, expected",[("3+5", 8),("5+7", 12),("9/3", 3),("6*9", 42)] ) def test_eval(test_input, expected):print("______测试用例_______")assert eval(test_input) == expectedif __name__ == '__main__':pytest.main(["-s", "Parametrize_01.py"])
运行结果
============================= test session starts ============================= platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1 rootdir: D:\python_auto\s14\pytest_learn, inifile: collected 4 itemsParametrize_01.py ______测试用例_______ .______测试用例_______ .______测试用例_______ .______测试用例_______ F================================== FAILURES =================================== ______________________________ test_eval[6*9-42] ______________________________test_input = '6*9', expected = 42@pytest.mark.parametrize("test_input, expected",[("3+5", 8),("5+7", 12),("9/3", 3),("6*9", 42)])def test_eval(test_input, expected):print("______测试用例_______") > assert eval(test_input) == expected E AssertionError: assert 54 == 42 E + where 54 = eval('6*9')Parametrize_01.py:18: AssertionError ===================== 1 failed, 3 passed in 0.07 seconds ======================
在这个例子中设计的,只有一条输入/输出值的简单测试功能。和往常一样
函数的参数,你可以在运行结果看到在输入和输出值
2.它也可以标记单个测试实例在参数化,例如使用内置的mark.xfail
import pytest@pytest.mark.parametrize("test_input, expected",[("3+5", 8),("5+7", 12),("9/3", 3),pytest.param("6*9", 42,marks=pytest.mark.xfail),] ) def test_eval(test_input, expected):print("______测试用例_______")assert eval(test_input) == expectedif __name__ == '__main__':pytest.main(["-s", "Parametrize_02.py"])
运行结果:
============================= test session starts ============================= platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1 rootdir: D:\python_auto\s14\pytest_learn, inifile: collected 4 itemsParametrize_02.py ______测试用例_______ .______测试用例_______ .______测试用例_______ .______测试用例_______ x===================== 3 passed, 1 xfailed in 0.10 seconds =====================
标记为失败的用例就不运行了,直接跳过显示xfailed
参数组合
1.若要获得多个参数化参数的所有组合,可以堆叠参数化装饰器
import pytest@pytest.mark.parametrize("x", [0,1]) @pytest.mark.parametrize("y", [2,3]) def test_eval(x, y):print("______测试用例_______")print("测试数据组合: x -> %s, y -> %s"% (x, y))if __name__ == '__main__':pytest.main(["-s", "Parametrize_03.py"])
运行结果
============================= test session starts ============================= platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1 rootdir: D:\python_auto\s14\pytest_learn, inifile: collected 4 itemsParametrize_03.py ______测试用例_______ 测试数据组合: x -> 0, y -> 2 .______测试用例_______ 测试数据组合: x -> 1, y -> 2 .______测试用例_______ 测试数据组合: x -> 0, y -> 3 .______测试用例_______ 测试数据组合: x -> 1, y -> 3 .========================== 4 passed in 0.05 seconds ===========================
这将运行测试,参数设置为x=0/y=2,x=1/y=2,x=0/y=3,x=1/y=3组合参数。
作者:含笑半步颠√
博客链接:https://www.cnblogs.com/lixy-88428977
声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。
转载于:https://www.cnblogs.com/lixy-88428977/p/9672579.html
pytest_参数化parametrize相关推荐
- pytest实战--参数化parametrize+前置fixture
文章目录 参数化 parametrize 适用场景 一个典型的例子 前置fixture+参数化 适用场景 一个典型的例子 示例2 个人疑问? pytest既可以用来做单元测试,也可以用来做自动化接口测 ...
- 什么是Pytest及Pytest常用方法
什么是Pytest? 一.什么是pytest 二.Pytest的特点 三.Pytest以及常用插件安装 四.编写规则 五.Pytest之收集用例及命令行参数 1.用例收集规则 2.命令行参数 六.跳过 ...
- print不起作用 pytest_pytest使用 小结
pytest是一个使构建简单和可扩展测试变得容易的框架. 命名 文件名必须是test_开头 或_test结尾的.py文件 类名必须是Test开头 测试函数以test_开头:_test结尾不可以(如b_ ...
- Python单元测试框架《python 自动化框架 pytest》
Pytest 简介 pytest 是python 的一种单元测试框架,不python 自带的unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高.根据pytest 的 ...
- pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
前言:pytest.mark.parametrize装饰器可以实现测试用例参数化. parametrizing 1. 下面是一个简单是实例,检查一定的输入和期望输出测试功能的典型例子 2. 标记单 ...
- Python Pytest装饰器@pytest.mark.parametrize多样参数化(二)
Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT 1.第一个参数是字符串,多个参数中间用逗号隔开 2.第二个参数是list ...
- 第十三:Pytest参数化-@pytest.mark.parametrize装饰器来实现数据驱动测试
1.unittest单元测试框架使用DDT进行数据驱动测试,那么Pytest框架有没有数据驱动呢? 2.Pytest是使用@pytest.mark.parametrize装饰器来实现数据驱动测试的. ...
- parametrize参数化中使用skip标记
[原文链接]parametrize参数化中使用skip标记 在参数化过程中,也可以使用skip对特定的数据进行标记,比如如下由于某种原因,当前实现的功能尚未满足(1,100)这组数据,因此此时可以使用 ...
- 【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 ...
最新文章
- eeglab中文教程系列(7)-数据叠加平均{2}绘制2D和3D图
- 幼儿园计算机教案 妈妈的爱,幼儿园大班教案《妈妈的爱》(通用)
- MySQL—增删改查,分组,连表,limit,union,alter,排序,去重
- 《训练指南》——6.10
- 1.4激活函数-带隐层的神经网络tf实战
- 20170102-文件处理
- 谷歌 Chrome Dev Tools 浅析 – 成为更高效的 Developer
- ccf会议等级划分_Python计算山东新高考选考科目卷面原始成绩为等级成绩
- 记一次成功修复U盘的痛苦经历
- 餐厅点餐系统设计思路
- mysql sql 隐藏信息
- 新域名正在备案,静候佳音
- 基于UCOSII的RS485通信(STM32F107)
- 人机交互如何改变人类生活 | 公开课笔记
- Top,vmstat命令排查CPU使用率,负载问题
- Flutter中的Provider(八)-多个Provider-MultiProvider
- TI-RTOS---TI-RTOS简介
- 宜人贷PaaS数据服务平台Genie:技术架构及功能
- JAVA简单分布式部署
- 简洁商务风公司产品介绍通用PPT模板
热门文章
- 2021年全球行为健康软件收入大约1726.1百万美元,预计2028年达到3272.6百万美元,2022至2028期间,年复合增长率CAGR为10.4%
- 关于win10系统hosts文件的内容
- Lecture 16 Dependency Grammar
- 【物联网】17.物联网传感器信号处理 - 信号放大电路
- 在MATLAB中使用数学符号,在matlab中怎么输入特殊符号 function在MATLAB中怎么用
- Assembly插件打包dubbo服务步骤
- 如何迈出创业(网站运营)第一步
- 治疗感冒时鼻塞 试试按摩这些穴位
- 云计算 3.0 的发展面临哪三大挑战?
- 《加勒比海盗》中的一句话...