zoukankan      html  css  js  c++  java
  • Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据

    一、首先安装openpyxl。

    pip install 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['用例编号']) # 打印出每一条测试数据,表头是 用例编号 的数据
    
    运行结果:

    四、写入测试结果

    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="测试通过")
    
    运行结果:

  • 相关阅读:
    数据库设计
    构建评价
    Schema xds文献
    架构设计评价
    需求分析评价
    获取script的链接参数并执行
    js获取封装对象/通过id tag className
    通过css/js来固定div的位置
    nginx日志分析工具goaccesss
    如何快速安装 allure
  • 原文地址:https://www.cnblogs.com/Super-Treasure/p/12798753.html
Copyright © 2011-2022 走看看