新闻详情

新闻详情

首页 / 资讯中心 / 详情

软件测试/测试开发|Pytest参数化神器,pytest.mark.parametrize()使用

发布时间:2026/10/1 10:21:50来源:尧图网络
软件测试/测试开发|Pytest参数化神器,pytest.mark.parametrize()使用
前言当我们需要使用多个数据去对一个功能进行测试的时候, 如果手动编写多个测试用例的方式来实现的话, 那就完全体现不出通过代码来执行测试所具备的那种优势了, 在这个时间点, 参数化这个功能就会派上用场了, 所谓参数化的意思, 就是把测试过程中涉及到的数据从业务逻辑中单独提取出来, 然后通过传递不同的参数值给程序, 让参数去驱动测试用例一遍又一遍地运行, 这其实也就是大家所说的那个数据驱动的思想概念。这里边儿, 我们就是要跟大家来讲一讲那个参数化还有数据驱动这俩个东西是咋回事。参数化方式在中, 我们使用了ddt这个库, 配合它来实现数据驱动。但是在当前的方案里面, 并不需要额外的库, 只通过.mark.()这一个方法就可以实现参数化功能了。这个方法里面的第一个参数是关于逗号分割的字符串列表的,第二个参数才是关于一个值列表的。存在三种传递参数的方法, 具体情况如下:单个传参以下所示的是相关的示例代码部分。def add(a,b):abclass :点mark点a, 这里。1,2,3,4,5这个方法是定义自我a的时候用的。add(a,1)a1最终的执行结果呈现出如下状态。 test ... 5 items这是一个扩展名为.py文件。.py::::.py::::.py::::.py:::: 5 in 0.04s 需要注意一下的是, 名为 .mark.() 的这种装饰器在设计上接收了两个参数, 具体来看的话, 第一个参数的形式是被确定为字符串的, 它的主要作用是用来对作为测试目标的那个函数所对应的参数进行标识工作, 而第二个参数则是通过列表或者是元组这样的数据结构来承载并传递实际的测试数据内容。多个传参示例代码如下def add(a,b):abclass :对带有标记的字符串进行标注, 所使用的字符串内容是a,b,c。这里有一个定义方法的代码片段, 它包含参数aadd(a,b)c运行结果如下 test ... 4 items.py::::.py::::\.py:19 (.)7 ! 5:5:7self等于, a等于3, b等于4。c 5.mark.(a,b,c,)def (self,a,b,c): add(a,b)cE 7 5E等于七, 而七等于将三和四相加之后所得到的那个结果。.py:22:.py::::.py:::: 1 , 3 in 0.06s 这里有一点需要留意, 当存在多个参数的情况时, 各个参数相互之间必须采用逗号的方式进行分隔, 同时参数的具体名称以及整体的个数也要做到完全一致的对应。总结参数化测试是中一个特别强大的功能性东西。这个东西可以帮助把开发者去更为高效率的编写测试用这个例子的过程。它能够提高代码覆盖这个率的水平, 并且能够让测这个试代码变简单很多。在后面的时候我们还打算继续介绍。我们会使用像yaml这样的文件形式去做更高级别的参数化和数据驱动测试这么回事。希望咱们这一篇文本能够给各位带来一些实际的帮衬作用在其中。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

位置指纹定位算法详解:从RSSI原理到多源融合实践 2026/10/1 11:08:10

位置指纹定位算法详解:从RSSI原理到多源融合实践

你有没有遇到过这种情况:在商场地下停车场绕了三圈找不到车,导航地图上那个代表你的蓝点却还在马路上乱飘;或者走进一家大型医院,明明指示牌写着“检验科往右”,你走了五分钟还是没找到。室外有GPS、北斗,定…

阅读更多 →
WPF+MVVM下ModbusRTU高可靠通讯链路设计 2026/10/1 11:08:10

WPF+MVVM下ModbusRTU高可靠通讯链路设计

1. 这不是又一个“ModbusRTU封装”,而是上位机通讯链路的底层缝合术我第一次在产线调试时,用自己写的ModbusRTU类库读取PLC寄存器,连续三天没找出为什么每小时必丢一帧——不是超时,不是校验错,也不是串口缓冲区溢出。…

阅读更多 →
Vue cron表达式组件选型:通用编辑器与Element Plus自组合 2026/10/1 11:08:09

Vue cron表达式组件选型:通用编辑器与Element Plus自组合

前几天帮一个做数据采集平台的朋友改需求,后台要给每个采集任务配一个执行周期,产品经理的原话是“要能让不懂技术的运营自己点着选,别让他们手写 cron 表达式”。当时我第一反应就是找一个现成的 vue cron 表达式组件嵌进去,结果…

阅读更多 →
实时流处理生产实践:Flume、Kafka、Flink与Structured Streaming全链路解析 2026/10/1 11:08:09

实时流处理生产实践:Flume、Kafka、Flink与Structured Streaming全链路解析

做实时数据平台这行,最怕的不是业务方追问延迟几秒,而是自己心里没数。市面上聊大数据实时流处理的PPT一抓一大把,可真正落到生产环境,绕来绕去就那么几个核心组件必须打交道:Flume负责把数据搬进门,Kafka在…

阅读更多 →
混沌Kolmogorov熵计算详解:G-P算法、MATLAB实现与参数避坑指南 2026/10/1 11:08:03

混沌Kolmogorov熵计算详解:G-P算法、MATLAB实现与参数避坑指南

简介:混沌Kolmogorov熵(K熵)是刻画混沌系统不确定性的重要指标,在非线性动力学、时间序列预测等领域应用广泛。这份MATLAB程序包正是为计算该参数而编写,适合从事混沌时间序列分析的研究人员使用。程序在前人基础上重新…

阅读更多 →
uni-app安卓原生插件开发全攻略:从环境搭建到真机调试 2026/10/1 11:08:03

uni-app安卓原生插件开发全攻略:从环境搭建到真机调试

1. 为什么要写安卓原生插件:先搞懂你的真实需求做 uni-app 开发的同学,大概率都遇到过这么几个场景:项目跑得好好的,突然有个功能只能用原生代码实现,比如读取设备唯一标识、对接某个只有安卓版 SDK 的硬件、调用系统级…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉