您现在的位置是:亿华云 > 系统运维
测试驱动技术(TDD)系列之-pytest实现测试数据驱动
亿华云2025-10-09 01:17:26【系统运维】7人已围观
简介本篇文章则介绍如何使用Python进行数据驱动。这里以pytest测试框架为例,重点讲解pytest参数化相关知识。(关于pytest的环境配置以及基础使用不在本文的讨论范围)pytest中使用标签@
本篇文章则介绍如何使用Python进行数据驱动。测试测试这里以pytest测试框架为例,驱动驱动重点讲解pytest参数化相关知识。技术(关于pytest的实现数据环境配置以及基础使用不在本文的讨论范围)
pytest中使用标签@pytest.mark.parametrize 实现参数化功能,在执行用例的测试测试时候该标签迭代中的每组数据都会作为一个用例执行。
一组参数化数据
定义参数化数据,驱动驱动代码如下:
class TestDemo1: @pytest.mark.parametrize(actual_string,技术 expect_string, [(1, 1), (BB, BB),(AA, BB)]) def test_1(self, actual_string, expect_string): assert (expect_string == actual_string)运行结果如下,三组数据在三条测试用例中运行,企商汇实现数据其中数据(AA,测试测试 BB)运行失败!

多组参数化数据
在一个测试类中,可以定义多组参数化数据(参数化数据个数不同,驱动驱动test_1二个,技术test_2三个),实现数据代码如下:
class TestDemo1: @pytest.mark.parametrize(actual_string,测试测试 expect_string, [(1, 1), (BB, BB),(AA, BB)]) def test_1(self, actual_string, expect_string): assert (expect_string == actual_string) @pytest.mark.parametrize(result, a,b, [(1, 1,0),(2, 1,0) ]) def test_2(self, result, a,b): assert (result == a+b)运行结果如下,二组数据分别在test_1和test_2中运行!

从excel中读取数据作为参数
我们可以自定义一些方法,驱动驱动对外部文件进行读取,技术然后把读取的数据作为参数在pytest
中引用。把测试数据保存在excel中,如下图

写一个读取excel类文件的站群服务器方法,使用模块pandas ,使用命令pip install pandas 安装模块,源码如下:
import pandas as pd # 读取Excel文件 -- Pandas def read_data_from_pandas(excel_file, sheet_name): if not os.path.exists(excel_file): raise ValueError("File not exists") s = pd.ExcelFile(excel_file) df = s.parse(sheet_name)#解析sheet页的数据 return df.values.tolist()#数据返回为list从excel中读取数据,并赋值给变量进行参数化,代码如下:
@pytest.mark.parametrize(actual_string, expect_string, read_data_from_pandas(E:/TestData.xls, data1)) def test_3(self, actual_string, expect_string): assert (expect_string == actual_string)运行结果如下,三组数据在三条测试用例中运行!

注意:excel中的首行,默认不会作为测试数据处理。
网站模板很赞哦!(2488)
相关文章
- 3、不明先知,根据相关征兆预测可能发生的事件,以便提前做好准备,赶紧注册相关域名。;不差钱域名;buchaqian抢先注册,就是这种敏感类型。预言是最敏感的状态。其次,你应该有眼力。所谓眼力,就是善于从社会上时不时出现的各种热点事件中获取与事件相关的域名资源。眼力的前提是对域名领域的熟悉和丰富的知识。
- 为什么 MySQL 的自增主键不单调也不连续
- EasyC++,C++ 中的 For 循环
- 如何用Python代码发一个炫酷的朋友圈
- 第六:这个圈子里的域名确实是赚钱的一些大玩家,至于小米农,有多少赚钱?几乎没有,也就是说,轿子里只有一个人,而且大多数人都抬着轿子。
- 域名注册后就是自己的吗?2021年9月买一个域名要多少钱?
- 2021年域名租用你需要了解的事情
- 硬核干货!Redis 分布式集群部署实战
- 2、定期提交和投标域名注册。例如,益华网络点击“立即预订”后,平台会抢先为客户注册域名。当然,一个域名可能会被多个客户预订,所以出价最高的人中标。
- 一入职!就遇到MySQL亿级大表优化....