一、excel基础操作
- 安装openpyxl库,导入openpyxl库
- excel中的三大对象
- workbook 工作薄
- sheet 表单
- cell 单元格
- 打开一个已存在的excel文件
import openpyxl
wb = load_workbook("testcase_api_wuye.xlsx") #打开一个已经存在的excel文件
print(wb) #文件的内存地址
- 读excel内容
wb = load_workbook("testcase_api_wuye.xlsx") #打开一个已经存在的excel文件
sh = wb["register"] #识别某一个表单
cl = sh.cell(row = 2,column = 5).value #通过表单的对应的行、列获取值
print(cl)
二、for循环读取表单数据
- 通过表单的对应的行、列获取url、data、expected值
- 因表单中有多条数据,故可用for循环读取register表单中所有url、data、expected值
- 使用 range() 获取表单最大行,range尾需 +1,即maxRow + 1
maxRow = sh.max_row #获取最大行
- 获取到的零散数据变整体,将读取到的每一条用例数据变成字典
- 每一条用例数据变成字典,用 dict(key = value) 的方法
- 将每一条字典数据,整体放到一个列表中
- 先定义一个空列表
- 将字典数据 append() 到空列表中
- 完整代码
wb = load_workbook("testcase_api_wuye.xlsx") #打开一个已经存在的excel文件
sh = wb["register"] #识别某一个表单
maxRow = sh.max_row #获取最大行
print(maxRow)
listCase = [] #空列表,用来存放读取到的用例数据
for i in range(2,maxRow + 1):
dictCase = dict(
id = sh.cell(row = i , column = 1).value, #通过表单的对应的行、列获取url值
url = sh.cell(row = i,column = 5).value, #通过表单的对应的行、列获取url值
data = sh.cell(row = i,column = 6).value, #通过表单的对应的行、列获取data值
expected = sh.cell(row = i,column = 7).value, #通过表单的对应的行、列获取expected值
)
listCase.append(dictCase) #每循环一次,把读取到的用例,生成的字典的数据,追加到列表中;循环完毕,列表中包含搜友读取到的用例数据
print(listCase)
三、封装读取excel函数
- 方法:
- def 函数名
- 确定哪些是变动的值,定义为函数参数,如:(文件名,表单名)
- 思考返回值
- 完整代码
#读用例函数
def readCase(filename,sheetname):
wb = load_workbook(filename) #打开一个已经存在的excel文件
sh = wb[sheetname] #识别某一个表单
maxRow = sh.max_row #获取最大行
print(maxRow)
listCase = [] #空列表,用来存放读取到的用例数据
for i in range(2,maxRow + 1):
dictCase = dict(
id = sh.cell(row = i , column = 1).value, #通过表单的对应的行、列获取url值
url = sh.cell(row = i,column = 5).value, #通过表单的对应的行、列获取url值
data = sh.cell(row = i,column = 6).value, #通过表单的对应的行、列获取data值
expected = sh.cell(row = i,column = 7).value, #通过表单的对应的行、列获取expected值
)
listCase.append(dictCase) #每循环一次,把读取到的用例,生成的字典的数据,追加到列表中;循环完毕,列表中包含搜友读取到的用例数据
return listCase
readcases = readCase("testcase_api_wuye.xlsx","login") #函数调用,定义变量接收调用函数的返回值