软件测试/测试开发丨Pytest结合数据驱动-Excel

文章介绍了如何在Pytest测试框架中结合openpyxl库进行数据驱动测试,通过读取Excel文件中的数据来执行测试用例。首先,展示了如何安装和使用openpyxl来读取和操作Excel文件,然后给出了工程目录结构和测试准备,包括被测函数和测试用例的代码示例。最后,详细解释了如何从Excel文件中提取数据并应用于测试参数化。
摘要由CSDN通过智能技术生成

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/24706

Pytest 结合数据驱动 Excel

读取 Excel 文件

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

image

工程目录结构

  • data 目录:存放 excel 数据文件
  • func 目录:存放被测函数文件
  • testcase 目录:存放测试用例文件
# 工程目录结构
.
├── data
│   └── params.excel
├── func
│   ├── __init__.py
│   └── operation.py
└── testcase
    ├── __init__.py
    └── test_add.py

测试准备

  • 被测对象:operation.py
  • 测试用例:test_add.py
# operation.py 文件内容
def my_add(x, y):
    result = x + y
    return result

# test_add.py 文件内容
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)

测试准备

  • 测试数据:params.xlsx

Pytest 数据驱动结合 Excel 文件

# 读取Excel文件
import openpyxl
import pytest

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

image

点此获取更多相关资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值