python测试框架-->pytest 结合数据驱动-csv(七)
1、什么是csv
CSV 全称是逗号分隔值文件格式。逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
2、csv的特点
- 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
- 由记录组成(典型的是每行一条记录);
- 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
- 每条记录都有同样的字段序列,可以由多个字段组成
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文件中获取数据,实现两个数相乘,然后对其结果进行断言。
工程目录结构如下图所示:
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)