pytest结合数据驱动读取Excel文件
-
第三方库
xlrd
xlwings
pandas -
openpyxl
官方文档:https://openpyxl.readthedocs.io/en/stable/ -
openpyxl库的安装
安装:pip install openpyxl
导入:import openpyxl -
openpyxl库的操作
读取工作簿
读取工作表
读取单元格
import openpyxl
# 获取工作簿
book = openpyxl.load_workbook('../data/params.xlsx')
# 读取工作表
sheet = book.active
# 读取单个单元格
cell_a1 = sheet['A1'] # 读取第A列,第1行的单元格中数据
cell_a3 = sheet.cell(column=1,row=3) #A3, 第A列,第3行的单元格中数据
# 读取多个连续单元格
cells = sheet["A1":"C3"] # 读取从第A列,第1行的单元格起,至第C列,第3行的单元格止范围中数据
# 获取单元格的值
cell_a1.value
- Pytest 数据驱动结合 Excel 文件
#测试my_add方法的测试用例
import openpyxl
import pytest
from func.operation import my_add
# 用到excel文件中的数据时,就需要读取出来
def get_excel():
# 获取工作薄
book = openpyxl.load_workbook('../data/params.xlsx')
# 获取活动行(非空白的)
sheet = book.active
#提取数据,格式:[[1,2,3],[3,6,9],[100,200,300]]
values = []
for row in sheet: #遍历行
line = []
for cell in row: #遍历列
line.append(cell.value)
values.append(line)
return values
class TestWithEXCEL:
@pytest.mark.parametrize('x,y,expected',get_excel())
def test_add(self, x, y, expected):
assert my_add(int(x),int(y)) == int(expected)