pytest之公共类封装读取excel(openpyxl)

"""
    封装读取表单测试用例的方法
"""
from openpyxl import load_workbook
class MyExcel:
    def __init__(self,excel_path,sheet_name):
        """
            打开工作簿,选择一个表单
        """
        wb=load_workbook(excel_path)#加载一个excel,得到工作簿对象
        self.sheet=wb[sheet_name]
    def read_data(self):
        """
            读取excel表单数据
        """
        print('self.sheet:',self.sheet,'type(self.sheet)',type(self.sheet))
        #self.sheet: <Worksheet "Sheet1"> type(self.sheet) <class 'openpyxl.worksheet.worksheet.Worksheet'>
        print('生成器self.sheet.values:',self.sheet.values)
        #生成器self.sheet.values: <generator object Worksheet.values at 0x00000248E4E3ABA0>
        data=list(self.sheet.values)#将生成器转换为列表
        print('将生成器转换为列表data:',data)
        #将生成器转换为列表data: [('姓名', '性别'), ('张三', '男'), ('李四', '女')]
        header=data[0]
        case_data=[]
        for row in data[1:]:
            row_dict=dict(zip(header,row))#将头部和用例打包
            case_data.append(row_dict)
        # print('case_data:',case_data)
        return case_data
#返回的是一个列表,列表中每一条数据都是一个用例
from common.excel_util import MyExcel#导入封装的读取excel

def test_readexcel():
    myexcel=MyExcel('D:\APP\pycharm\pythonProject\huacepyest\data\lest.xlsx','Sheet1')
    # MyExcel.read_data(r'D:\APP\pycharm\pythonProject\huacepyest\data')
    cases = myexcel.read_data()
    print(cases)#[{'姓名': '张三', '性别': '男'}, {'姓名': '李四', '性别': '女'}]

再改进下:

@pytest.mark.parametrize('cases',MyExcel(r'C:\Users\Administrator\PycharmProjects\pythonProject2\data\test.xlsx','Sheet1').read_data())
def test_readexcel(cases):
    # myexcel=MyExcel(r'C:\Users\Administrator\PycharmProjects\pythonProject2\data\test.xlsx','Sheet1').read_data()
    # cases = myexcel.read_data()
    print('姓名',cases['姓名'])
    print('性别',cases['性别'])

执行结果:

pytest是一个基于Python语言的测试框架,用于测试应用程序和代码的正确性。对于测试数据的管理,pytest可以支持Excel文件,但需要使用第三方库来实现Excel文件的读取。下面介绍一种常见的批量读取Excel文件方法。 1. 安装第三方库:pytest-excel 使用pip install pytest-excel命令安装pytest-excel库。 2. 创建Excel文件 在测试用例项目中创建一个Excel文件,命名为testdata.xlsx,然后在Excel文件中添加测试数据。 3. 编写测试用例 在pytest框架的基础上,通过调用pytest-excel库提供的@pytest.mark.excel函数来读取Excel文件中的测试数据,然后使用pytest.mark.parametrize装饰器将测试数据传递给测试用例的参数。例如: ```python import pytest import xlrd # 使用pytest.mark.excel函数读取Excel文件中的测试数据 @pytest.mark.excel("testdata.xlsx", sheet_name="Sheet1") # 使用pytest.mark.parametrize将测试数据传递给测试用例参数 @pytest.mark.parametrize("input1, expected_output", pytest.excel) def test_function(input1, expected_output): # 测试用例代码 assert input1 + 1 == expected_output ``` 上述代码使用@pytest.mark.excel函数从testdata.xlsx文件中读取Sheet1中的测试数据,然后使用pytest.mark.parametrize装饰器将读取的测试数据传递给test_function函数的参数进行测试。 以上就是批量读取Excel文件的方法,在pytest测试框架中,读取Excel文件的方式可以根据具体需求选择不同的第三方库进行实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值