Python教程

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

本文主要是介绍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)
这篇关于python自动化测试(2)--读取excel中的测试用例并使用列表进行存放的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!