> 文档中心 > python测试框架-->pytest 结合数据驱动-csv(七)

python测试框架-->pytest 结合数据驱动-csv(七)


1、什么是csv

CSV 全称是逗号分隔值文件格式。逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

2、csv的特点

  1. 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
  2. 由记录组成(典型的是每行一条记录);
  3. 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
  4. 每条记录都有同样的字段序列,可以由多个字段组成

3、csv 文件使用

读取数据
内置函数:open()
内置模块:csv
方法:csv.reader(iterable)
参数:iterable ,文件或列表对象
返回:迭代器,每次迭代会返回一行数据。

4、实战1

场景:从csv文件中获取数据,将csv所有内容输出出来。

demo.csv的内容如下:

名称,语言,价格Linux从入门到高级,linux,¥59web自动化测试进阶,python,¥69app自动化测试进阶,python,¥49Docker容器化技术,linux,¥89测试平台开发与实战,python,¥119

test_csv.py具体代码:

import csvdef test_get_csv():    #打开demo.csv,将demo.csv起别名为file    with open('demo.csv', 'r',encoding="UTF-8") as file: #csv.reader(iterable),iterable 可以为文件或列表对象,读取csv文件中所有的行 raw = csv.reader(file) #对所有额行进行遍历 for line in raw:     print(line)

在这里插入图片描述

5、实战2

场景:从csv文件中获取数据,实现两个数相乘,然后对其结果进行断言。

工程目录结构如下图所示:
python测试框架-->pytest 结合数据驱动-csv(七)
demo.csv数据如下:

1,1,12,2,43,3,9

operation.py代码如下图所示:

def add(x, y):    result = x + y    return result

test_add.py代码如下图所示:

import csvimport pytestfrom operation import adddef get_csv():    with open('demo.csv') as file: # 行 raw = csv.reader(file) data = [] # 每一行作为一个用例 for line in raw:     data.append(line) print(data)    return dataclass TestWithCSV:    # get_csv()作为参数传递    @pytest.mark.parametrize('x,y,expected', get_csv())    def test_add(self, x, y, expected): assert add(int(x), int(y)) == int(expected)

python测试框架-->pytest 结合数据驱动-csv(七)

书本网