zoukankan      html  css  js  c++  java
  • 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

    本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14310411.html

  • 相关阅读:
    超级文件夹管理器
    基于IAP和网口升级固件
    经典排序之高速排序
    hdu 4908 BestCoder Sequence
    Boost.Asio c++ 网络编程翻译(11)
    Silverlight 5 Grid组的MouseLeave响应
    Linux下实现RAID
    关于相互排斥运行的设计与实现
    Codeforces 309C Memory for Arrays 二进制模拟进位
    sharepoint 2013 资源管理器copy大文件到本地失败解决方法
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14310411.html
Copyright © 2011-2022 走看看