"""
函数名:def get_excel_data()
版本:v2.0
函数功能:
(1)获取请求的body与预期的响应结果
(2)可以自定义获取对应的列数据
具体方案:
方案一:直接使用列编号workSheet.cell_value(idx,colIdx)
方案二:直接使用列的标题(列名)
"""
# ------v2.0---
import xlrd
# 可变数量参数*args(可以传多个参数),元组形式
def get_excel_data(excelDir, sheetName, caseName,*colName):
resList=[]
# formatting_info 保持原样式
workBook = xlrd.open_workbook(excelDir, formatting_info=True)
workSheet = workBook.sheet_names() # 获取所有表名
# 获取具体的表(模块)
workSheet = workBook.sheet_by_name(sheetName)
"""
函数调用者使用列名:标题,url
代码真正操作:使用列的编号
思路转化:把函数调用者输入的列名转为列编号
"""
# ------------------------------------
colIdxList = []#函数调用者输入列名,转化后的列编号-用列表存放
for i in colName:#遍历用户输入的列名colName是元组
num=workSheet.row_values(0).index(i)#取出第0行,然后按值求下边(列表求下标)
colIdxList.append(num)
print('列编号--',colIdxList)
# ————————————————————————————————————
# 获取数
idx = 0 #代表行号初始值
for one in workSheet.col_values(0):#获取第0列数据
if caseName in one:
# 条件满足,则需要这以后数据中的对应列
getColData = []# 存放一行中对应的多列数据
for colIdx in colIdxList:#遍历列名转化后的列编号,拿到所有需要的列(colIdx)
res = workSheet.cell_value(idx,colIdx)#读取某一个单元格数据
getColData.append((res))
resList.append(getColData)
idx+=1
return resList
if __name__ == '__main__':
configData=['标题','url']
#代码的装包和解包
#*configData--将元组、列表解成单个元素
res=get_excel_data('../data/Delivery.xls', '登录模块','Login',*configData)
print(res)
for one in res:
print(one)
"""
测试反馈:
1.用户可以指定需要获取的列
2.但是要指定执行某几个用例,就不能实现了
建议:筛选用例
"""
3.接口自动化测试-读取excel文件优化2.0
本文介绍了一个名为get_excel_data的Python函数,版本为v2.0,用于从Excel文件中根据用户指定的列名动态获取数据。函数支持自定义列选择,通过列名查找对应的列编号进行数据抓取。
摘要由CSDN通过智能技术生成