本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30094
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']
cell_a3 = sheet.cell(column=1,row=3) #A3
# 读取多个连续单元格
cells = sheet["A1":"C3"]
# 获取单元格的值
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)