• python自动化测试(2)--读取excel中的测试用例并使用列表进行存放


    一、相关概念

    使用python对excel进行操作之前,我们需要了解excel的组成,分别是:

    • 工作薄workbook
    • 工作表sheet
    • 单元格cell

    对excel的操作,实质上是对excel中workbook、sheet以及cell的操作。

    二、操作流程

    1. 使用excel提前将测试用例准备好
    2. 导入操作excel需要使用的模块:openpyxl
    3. 工作簿的加载:wb = load_workbook("excel的存放路径")
    4. 获取存放测试用例的表单:sh = wb["表单名称"]
    5. 获取表单中所有的数据,并使用列表保存--按行获取
      • rows = list(sh.rows)
      • 说明:使用sh.rows获取的每一行是一个元组,元组中的成员是cell
    6. 遍历行:获取每一行中所有数据,此时我们需要区分一下表头数据非表头数据
      • 使用字典存放每一行的测试用例
      • 遍历的表头行数据,可以用作dict中的key
      • 遍历的非表头行数据,可以用作dict中的value
      • 对于非表头行,每一行就是一个测试用例数据
      • 将存放每一行测试用例的dict,添加到存放所有测试用例的列表中

    三、代码实现

    • 方式一:使用zip(推荐)
     1 '''
     2 读取excel中的测试用例,并使用列表进行保存
     3     使用zip将表头信息与行中的信息已字典的形式关联
     4 '''
     5 
     6 import os
     7 from openpyxl import load_workbook
     8 
     9 file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"login_case.xlsx")
    10 
    11 datas_case = []      #用于保存测试用例
    12 
    13 wb = load_workbook(file_path)    # 获取工作簿workBook
    14 sh = wb["login"]    # 获取工作表
    15 rows = list(sh.rows)   # 获取工作表中所有行,行中的元素以元组的形式进行存放
    16 
    17 titles = []   # 用户存放表头信息
    18 for key in rows[0]:   # 遍历表头
    19     titles.append(key.value)
    20     pass
    21 
    22 # 遍历非表头行
    23 for row in rows[1:]:
    24     values = []   # 用于存放行中元素
    25     for cel in row:  # 遍历行中的单元格
    26         values.append(cel.value)
    27         pass
    28     res = dict(zip(titles,values))   # 将行中的元素与表头信息组合,形成测试用例
    29     res["expected"] = eval(res["expected"])  # 将字符串转换成字典
    30     datas_case.append(res)    # 将测试用例存放在列表中
    31     pass
    32 
    33 print(datas_case)
    • 方式二:原生方式
     1 '''
     2 读取excel中的测试用例,并使用列表进行保存
     3     使用最原生的方式
     4 '''
     5 
     6 import os
     7 from openpyxl import load_workbook
     8 
     9 file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"login_case.xlsx")
    10 
    11 datas_case = []      #用于保存测试用例
    12 
    13 wb = load_workbook(file_path)    # 获取工作簿workBook
    14 sh = wb["login"]    # 获取工作表
    15 rows = list(sh.rows)   # 获取工作表中所有行,行中的元素以元组的形式进行存放
    16 
    17 titles = []   # 用户存放表头信息
    18 for key in rows[0]:   # 遍历表头
    19     titles.append(key.value)
    20     pass
    21 
    22 # 遍历非表头行
    23 for row in rows[1:]:
    24     row_dict = {}   # 将行中的信息用字典保存
    25     for item in range(len(row)):
    26         row_dict[titles[item]] = row[item].value
    27         pass
    28     row_dict["expected"] = eval(row_dict["expected"])  # 将字符串转换成字典
    29     datas_case.append(row_dict)    # 将测试用例存放在列表中
    30     pass
    31 
    32 print(datas_case)
  • 相关阅读:
    BZOJ1293: [SCOI2009]生日礼物
    BZOJ2326: [HNOI2011]数学作业
    BZOJ1179: [Apio2009]Atm
    树链剖分的一个小细节
    BZOJ1146: [CTSC2008]网络管理Network
    BZOJ1984: 月下“毛景树”
    BZOJ3196: Tyvj 1730 二逼平衡树
    BZOJ1579: [Usaco2009 Feb]Revamping Trails 道路升级
    BZOJ1674: [Usaco2005]Part Acquisition
    Babel 在浏览器环境使用方法
  • 原文地址:https://www.cnblogs.com/yif930916/p/14697283.html
Copyright © 2020-2023  润新知