写点什么

软件测试学习笔记丨 Pytest 结合数据驱动读取 csv 文件

作者:测试人
  • 2024-03-18
    北京
  • 本文字数:811 字

    阅读完需:约 3 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30109

  • csv 文件介绍

csv: 英文!! 逗号分隔值每行表示一条记录:CSV 文件中每一行代表一条记录,相当于数据库中的一行数据逗号分隔:每行数据中,使用逗号(,)进行分隔,相当于数据库中不同的字段引号包围:当数据单元格中的内容含有逗号时,为避免混淆,需要引号(单引号’或双引号")将这个数据包围起来,防止误认为是两个不同数据


  • csv 文件使用

  • 读取数据


  • 内置函数:open()内置模块:csv

  • 读取 csv 文件的方法


  • csv.reader(iterable)参数:iterable,文件或列表对象返回:迭代器,每次迭代会返回一行数据

def get_csv():    with open('demo.csv','r') as file:  #以只读的方式打开demo.csv文件,重命名为file        raw = csv.reader(file) #file作为迭代器使用
for line in raw: #遍历迭代器 print(line) #返回迭代器中的一轮迭代数据,即一行数据
复制代码
  • pytest 结合数据驱动读取 csv 文件

#测试my_add方法的测试用例import pytestimport csvfrom func.operation import my_add
# 用到csv文件中的数据时,就需要读取出来def get_csv(): """ 获取csv数据 :return: 返回数据的结构:[[1,2,3],[3,6,9],[100,200,300]] """ with open("../data/params.csv",'r',encoding="utf-8") as f: raw = csv.reader(f) # f 表示文件或列表对象, 返回迭代器raw; raw为列表类型, 可迭代, 每次迭代返回的数据类型也是列表类型 data = [] for line in raw: #遍历迭代器中的每行数据, 返回的是列表类型 data.append(line) return data #以列表的形式返回文件内容:[[1,2,3],[3,6,9],[100,200,300]]
class TestWithCSV: @pytest.mark.parametrize('x,y,expected',get_csv()) def test_add(self, x, y, expected): assert my_add(int(x),int(y)) == int(expected)
复制代码



免费领取:测试资料+测试用例+简历模板+测试文档


发布于: 13 小时前阅读数: 6
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Pytest结合数据驱动读取csv文件_软件测试_测试人_InfoQ写作社区