| 
 | |
| 
 | 
| 开发:
C++知识库 
Java知识库 
JavaScript 
Python 
PHP知识库 
人工智能 
区块链 
大数据 
移动开发 
嵌入式 
开发工具 
数据结构与算法 
开发测试 
游戏开发 
网络协议 
系统运维 教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 | 
| -> 开发测试 -> python测试框架之pytest (二)参数化 -> 正文阅读 | 
|  | 
| [开发测试]python测试框架之pytest (二)参数化 | 
| 一、引言在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。pytest的测试用例参数化,使用 @pytest.mark.parametrize 装饰器完成。 说明: @pytest.mark.parametrize(argnames, argvalues) # argnames: 以逗号分隔的字符串 # argvaluse: 参数值列表,若有多个参数,一组参数以元组形式存在,包含多组参数的所有参数 # 以元组列表形式存在 @pytest.mark.parametrize(argnames, argvalues) 装饰器接收两个参数,一个参数(argnames)是以字符串的形式标识用例函数的参数,第二个参数(argvalues)以列表或元组的形式传递测试数据。 将定义的argnames,传递到测试用例中的参数中,作为形参。 二、参数化说明参数化传递的都是列表,一个列表显示多组测试数据,每条测试用例,数据驱动一条测试数据,就像for循环遍历一样。 2.1、一个参数注意:其中装饰器定义的一个字符串参数,必须和用例中传递的参数一致。? 
 执行结果: 
 2.2、多个参数? ?执行结果:? 
 2.3、字典参数化日常自动化测试中运用最多的就是字典参数化了,读取csv、yaml、excel、json中的数据,进行参数化驱动。 常用的做法是将,第二个参数替换成读取csv、yaml、excel的路径。 ?执行结果: 
 2.4、笛卡尔积参数化测试中,有时候,需要覆盖多种测试情况,可以使用多组参数化,然后去笛卡尔积。 执行结果: 
 2.5、测试类参数化测试类的参数化,实际上是对类中的每个测试用例进行参数化。类中的每个测试用例的参数,必须与@pytest.mark.parametrize()中的标识的参数个数一致。 ?执行结果: 
 2.6、修改显示结果名称除外字典参数化,其余参数化运行结果,都是会显示组合数据,默认是根据 函数名[参数名]。但如果数据特别多的情况下,运行结果就会很长,不易阅读。 @pytest.mark.parametrize源码里还提供了ids,可以自动有修改显示结果名称。 ?执行结果: 
 2.7、indrect参数(1)indirect=False时,argnames 参数被当成普通变量使用,默认indirect是False。不传indirect参数,就和前6条用法一致。 ?执行结果 (2)indirect=True时,parametrize 中的 argnames 参数被当成函数执行,且 argvalues 值作为 argnames函数中的参数传参,并最终以fixture的执行结果返回。 这种使用场景,经常是连接数据库、登录。每次传参不一样,需要使用fixture去前置处理数据库连接、登录。 执行结果? 
 | 
|  | 
| 开发测试 最新文章 | 
| pytest系列——allure之生成测试报告(Wind | 
| 某大厂软件测试岗一面笔试题+二面问答题面试 | 
| iperf 学习笔记 | 
| 关于Python中使用selenium八大定位方法 | 
| 【软件测试】为什么提升不了?8年测试总结再 | 
| 软件测试复习 | 
| PHP笔记-Smarty模板引擎的使用 | 
| C++Test使用入门 | 
| 【Java】单元测试 | 
| Net core 3.x 获取客户端地址 | 
|  | 
| 上一篇文章 查看所有文章 | 
| 
 | 
| 开发:
C++知识库 
Java知识库 
JavaScript 
Python 
PHP知识库 
人工智能 
区块链 
大数据 
移动开发 
嵌入式 
开发工具 
数据结构与算法 
开发测试 
游戏开发 
网络协议 
系统运维 教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 | 
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/31 16:38:36- | 
| 
 | 
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |