3.接口自动化测试-读取excel文件优化2.0

本文介绍了一个名为get_excel_data的Python函数,版本为v2.0,用于从Excel文件中根据用户指定的列名动态获取数据。函数支持自定义列选择,通过列名查找对应的列编号进行数据抓取。
摘要由CSDN通过智能技术生成
"""
函数名: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
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值