获取Excel用例数据的封装

import xlrd
# xlrd——.xls格式的excel文件;openpyxl——.xlxs格式的excel文件;pandas——大数据csv格式
def get_excel_data(excelDir,sheetName,caseName,*args):
    resList=[]   # 存放Excel读取结果
    #1-把Excel加载到内存中---open-----formatting_info=True  保持原样式
    workBook=xlrd.open_workbook(excelDir,formatting_info=True)
    
    #2-获取对应的sheet
    workSheet=workBook.sheet_by_name(sheetName)
    
    #3-根据输入的列名,获取对应的列下标
	colidx=[]#存放下标的列表
    for i in args:    # 遍历元祖元素
        # 列名在第一行数据里
        colidx.append(workSheet.row_values(0).index(i))
        
    #4-遍历第0列,根据caseName模糊匹配
    idx=0 #遍历变量
    for one in workSheet.col_values(0): #列表
        if caseName in one: #判断
            getcoldata=[]   #存放对应列的数据
            for num in colidx:      # 遍历列下标
                tmp = workSheet.cell(idx,num).value
                if is_json(tmp):  # tmp就是json,需要转换成字典
                    tmp = json.loads(tmp)
                getcoldata.append(tmp)      # 把这一行列数据都存放起来
            resList.append(getcoldata)      # 每一行的列数据都存放起来
        idx += 1
    return resList

def is_json(inStr):
    try:
        json.loads(inStr)
    except:
        return False  # 不是json
    return True   # 是json


if __name__ == '__main__':
    res=get_excel_data('../data/testcase.xls','登录模块','Login','标题','URL','请求参数','响应预期结果')
    for one in res:
        print(one)

你可能感兴趣的:(pytest,python)