Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据

真新镇的涅法雷姆 2020-04-29

一、首先安装openpyxl。

pip install openpyxl

二、首先我们新建一个Excel文件,写入内容。

Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据

三、读取测试用例数据(注意:在使用openpyxl操作Excel文件时,一定要关闭Excel文件哦,否则会报错!)

import openpyxl


class ReadExcel():

    def __init__(self, file_name, sheet_name):
        """
        初始化ReadExcel该方法
        :param file_name: Excel文件名
        :param sheet_name: 指定读取的sheet页
        """
        self.file_name = file_name
        self.sheet_name = sheet_name

    def open_excel(self):
        """打开指定的Excel文件中的Sheet页"""
        # 通过.load_workbook方法加载Excel文件
        self.wb = openpyxl.load_workbook(filename=self.file_name)
        # 然后打开指定的sheet页
        self.sh = self.wb[‘data‘]

    def read_excel(self):
        """
        定义读取Excel指定表单内容数据的方法
        :return:
        """
        self.open_excel()  # 首先打开Excel中的sheet页
        cases = []  # 新建一个空列表,用于存放读取出的数据
        titles = []  # 新建一个空列表,用于存放读取到的表头,也就是1,2,3,4,5这一行
        # 新建以上这两个空列表呢,为了方便我们把每一行测试数据与表头进行打包

        rows = list(self.sh.rows)  # 这里是将指定的sheet页中所有存在数据的行全都读取出来,转换成列表类型存放,方便我们进行遍历

        # 这里是要将表头(1,2,3,4,5这些),通过遍历的方式,提取出来,存放到空列表
        for row in rows[0]:
            titles.append(row.value)  # 将每一个表格的value值,也就是我们需要的数据,添加的空列表中。

        # 这里是遍历除了表头一行,剩下的所有行
        for row in rows[1:]:
            data = []
            for r in row:  # 遍历每一行的每一个表格
                data.append(r.value)
            data_zip = dict(zip(titles, data))  # 然后将每一行读取到的测试数据,和表头进行打包成一个字典的形式存放。
            cases.append(data_zip)  # 将所有测试数据添加到一个空列表中
        return cases


if __name__ == ‘__main__‘:
    cases = ReadExcel(file_name=‘cases.xlsx‘,sheet_name=‘data‘).read_excel()
    # 获取到所有的测试数据

    # 遍历出每一条测试数据
    for i in cases:
        print(i[‘用例编号‘]) # 打印出每一条测试数据,表头是 用例编号 的数据
运行结果:

Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据

四、写入测试结果

import openpyxl


class ReadExcel():

    def __init__(self, file_name, sheet_name):
        """
        初始化ReadExcel该方法
        :param file_name: Excel文件名
        :param sheet_name: 指定读取的sheet页
        """
        self.file_name = file_name
        self.sheet_name = sheet_name

    def open_excel(self):
        """打开指定的Excel文件中的Sheet页"""
        # 通过.load_workbook方法加载Excel文件
        self.wb = openpyxl.load_workbook(filename=self.file_name)
        # 然后打开指定的sheet页
        self.sh = self.wb[‘data‘]

    def write_excel(self, row, column, value):
        """
        定义一个写入数据的方法
        :param row: 指定写入的行
        :param column: 指定写入的列
        :param value: 指定写入的数据
        :return:
        """
        # 第一步:打开
        self.open_excel()
        # 第二步:写入
        self.sh.cell(row=row, column=column, value=value)
        # 第三步:保存
        self.wb.save(self.file_name)


if __name__ == ‘__main__‘:
    ReadExcel(file_name=r‘cases.xlsx‘,sheet_name=‘data‘).write_excel(row=2, column=13, value="测试通过")
运行结果:

Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据

相关推荐