Excel封装

logger封装:logger的初始化放到封装的logger文件中,因为自动化测试产生的日志比较少,一个日志文件足矣,每个模块的测试用例py中都用同一个logger收集器,无需多次获取。

Excel封装

主要使用openpyxl库,openpyxl只处理xlsx文件的读取和编写

将Excel处理数据封装成类ExcelHandler

def __init__(self,f_path):
self.file_path = f_path----------实例属性,文件名

def read(self,sheet_name)处理数据实例方法,返回字典列表

work_book=openpyxl.open(self.file_path)--打开excel文件,获取的是Workbook对象

work_sheet = work_book[sheet_name]---根据sheet工作表的name,获得sheet表格,Worksheet对象

work_sheet.values---获得一个生成器对象,可迭代。
sheet_data = list(work_sheet.values)---获得sheet表格的数据,将生成器转换成list,元素为每行数据元组。

head=sheet_data[0]---获得表头数据

sheet_data_dict_list = []
for data in sheet_data[1:]:
data_dict = dict(zip(head,data))
sheet_data_dict_list.append(data_dict)
return sheet_data_dict_list

处理数据成元素为字典的列表,并返回

 

import openpyxl

from common.logger_handler import logger


class ExcelHandler:
"""
handle data in Excel
:param file_path: test cases data file
:method read: get data from excel

"""

def __init__(self, f_path):
self.file_path = f_path

def read(self, sheet_name):
"""get data from excel return dict data
:param sheet_name:worksheet name
"""
try:
work_book = openpyxl.open(self.file_path)
except FileNotFoundError as e:
logger.error("测试用例文件打开失败:{}".format(e))
work_sheet = work_book[sheet_name]
sheet_data = list(work_sheet.values)
head = sheet_data[0]
sheet_data_dict_list = []
for data in sheet_data[1:]:
dict_data = dict(zip(head, data))
sheet_data_dict_list.append(dict_data)
return sheet_data_dict_list

posted @ 2021-01-21 21:00  %女王%  阅读(233)  评论(0编辑  收藏  举报