| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 3:00:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |