unittest--封装excel操作

操作流程

1、初始化表格对象:
文件路径workbook,表单名称sheet_name
2、初始化sheet对象 ,表单对象sheet
3、获取表格数据 测试用例数据

类和对象

属性:表单对象sheet 文件路径workbook
方法:获取测试用例数据

初始化对象操作

# 初始化表格对象
work_book = load_workbook(filename='testCase.xlsx')
# 初始化sheet对象
sheet = work_book['sheet1']

获取表格的数据

# 获取单元格数据
'''
min_row=None:起始行,起始值默认是1
max_row=None:结束行,默认是最大的行
min_col=None:起始列 ,起始值默认是1
max_col=None:结束列,默认是最大的列
values_only=False:返回单元格的对象
             True:返回单元格内容
'''
datas = sheet.iter_rows(values_only=True)
print(list(datas))
在这里插入代码片

初始化一个用于操作Excel文件的对象

    def __init__(self,file_path,sheet_name):
        #初始化表格对象   实例属性
        self.work_book = load_workbook(filename=file_path)
        #初始化sheet对象
        self.sheet = self.work_book[sheet_name]

在这里插入图片描述

获取表头和所有测试用例数据

#获取表头和所有测试用例数据
    def __get_all_data(self):
        all_datas = list(self.sheet.iter_rows(values_only=True))
        print(list(all_datas))
        title = all_datas[0] # 获取表头,list切片
        case_datas = all_datas[1:] # 获取测试用例数据,list切片
        return title,case_datas

在这里插入图片描述

数据拼接 (dict)

在这里插入图片描述

# 数据拼接 (dict)
    def get_case_data_dict(self):
        # 创建一个空列表,用于存储转换后的字典数据
        case_list = []
        # 调用私有方法获取所有数据
        title, case_datas = self.__get_all_data()
        # 遍历所有数据,并将其转换为字典
        for val in case_datas:
            # 使用 zip 函数将标题和值组合为一个元组列表
            result = dict(zip(title, val))
            # 添加转换后的字典到列表中
            case_list.append(result)
            # 返回转换后的字典列表
        return case_list


    #zip函数使用
    def test(self):
        list1 = ['key1','key2','key3']
        list2 = ['val1','val2','val3']
        result = zip(list1,list2)
        print(dict(result))
    def get_all_data(self):
        pass

保存测试结果到excel

    def write_result(self,rows,columns,result=None):
        self.sheet.cell(row=rows,column=columns).value=result
        self.__save_excel()

保存excel

    def __save_excel(self):
        self.work_book.save(filename=self.file_name)

主函数调用

if __name__ == '__main__':
    cl = HandleExcel(file_path='testCase.xlsx',sheet_name='sheet1')
    cl.get_all_data()
    case_list = cl.get_case_data_dict()
    pprint.pprint(case_list)

在这里插入图片描述

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值