如何利用Excel轻松管理测试数据

随着项目的持续迭代,新增的接口会越来越多,关联性也越强,如果这么多数据都单独存放在各自的测试用例中,那维护将会是一个巨大的工程,费时费力,为了更有效的管里数据和代码,现在的框架基本都做了数据和代码的解耦处理。

将测试数据独立存放起来管理也是最有效的解耦操作,这里就来讲讲如何通过Excel来管理测试数据,管理不仅仅是存放,同时还有读取、写入、保存、关闭等操作。

一般来说,最好把一个项目存放在一个Excel文件里, 每个模块独占一个sheet页,这样方便我们对用例数据做查找和修改,还是以初识Unittest那篇随笔的功能点【判断两个数是否相等】做示例,

一、模块

使用模块:openpyxl

由于这不是Python内建模块,请在终端使用命令:pip install openpyxl 进行安装。

注意:openpyxl只能操作.xlsx后缀的Excel文件

二、数据:

将数据整理到Excel文件中,如下图,

扫描二维码关注公众号,回复: 9287525 查看本文章

三、封装Excel操作类

class OperateExcel:
    def __init__(self, file_path, sheet_name):
        """
        初始化方法,打开excel文件,获取sheet表对象
        :param file_path:文件所在路径
        :param sheet_name:表名称
        """
        self.excel_file = openpyxl.load_workbook(file_path)
        self.sheet = self.excel_file[sheet_name]
    def read_data(self):
        """读取sheet表数据,返回一个包含字典记录的列表"""
        rt_datas = []
        # 按行得到所有单元格
        rows_data = list(self.sheet.rows)
        # 保存第一行表头到titles列表
        titles = []
        for title in rows_data[0]:
            titles.append(title.value)
        # 读取用例数据并和标题聚合成字典
        for row_data in rows_data[1:]:
            datas = []
            for data in row_data:
                datas.append(data.value)
            rt_datas.append(dict(zip(titles, datas)))
        return rt_datas

以上只展示了数据读取和转换的具体过程,还应有数据回写、文件保存、关闭等操作,这里就不一一列举了。

在实际应用中,数据的存储方式多种多样,除了Excel外,常用的还可以保存于文本,py文件,数据库等等

猜你喜欢

转载自www.cnblogs.com/suanmiaoup/p/12197853.html
今日推荐