接口管理系统导入excel(接口中导入excel测试数据 )

大雄 502 2022-06-20


通过项目来实现怎样导入Excel表格中的测试用例

一、编写一个读取Excel数据的函数

功能:传一个Excel的位置和第几个工作表,返回数据列表

名词:workBook==工作簿==Excel

         workSheet==工作表==sheet

Excel表格中从0开始读取

 

导入:import  xlrd

步骤:

定义一个函数:

def readExcel(filePath,sheet_index):
01:打开Excel,获取【workBook】对象
workBook = xlrd.open_workbook(filePath)#路径

02:从工作簿中,获取【workSheet】对象

复制代码
第一种方法:
workSheet = workBook.get_sheet(sheet_index)#第几个工作表(索引)第二种方法:
workSheet = workBook.sheet_by_name('工作表名')
第三种方法:
workSheet = workBook.sheet_by_index(sheet_index)
第四种方法:
workSheet=workBook.sheets()[索引]
复制代码

 

获取总行数:

nrows = workSheet.nrows

获取某行数据:

row=workSheet.row_values(行号)

03:对【workSheet】工作表进行循环-逐型行取出数据,放入列表中

    retList=[]    for i in range(1,nrows): #range左包含右不包含  读45条记录
        #返回的是一个list,得到的是第几行数据
        oneRow = workSheet.row_values(i)
        retList.append(oneRow)    return retList

04:返回数据列表

List=readExcel('测试用例路径',0)print(list)

二、发送Excel表格数据

功能:传一行Excel数据行(列表格式),返回请求结果(字典格式)

复制代码
import jsonfrom API项目.lib.courseLIb import add,delete,modifyfrom API项目.lib.excelManger import readExcelimport timeimport sleepdef SendCourseRequest(row):    # print(row)  # 传入的是一行数据,也就是一个测试用例
    colus5 = row[4]  # 第5列的值
    # # 第6列的值,用json.loads方法,把字符串转化为字典格式
    colus6 = json.loads(row[5])    # ret = None
    if colus5 == 'add':        # print(colus6['name'])# 课程名称
        courseName = colus6['name']  # 获取课程名称
        # 把关键字:{{courseName}} 替换成时间戳
        courseName = courseName.replace('{{courseName}}', str(int(time.time() * 100)))
        ret = add(courseName, colus6['desc'], colus6['display_idx'])        # print(ret)
        test = json.loads(row[6])        if (ret['retcode']==test['code']):            print(row[0],'测试通过')    # elif colus5 == 'list':
    #     ret = list(colus6['pagenum'], colus6['pagesize'])
    # elif colus5 == 'delete':
    #     ret = delete(colus6['id'])
    # return retlist=readExcel(r'E:\bijizongjie\API项目\data\教管系统-测试用例V1.2.xls',0)# print(list)for i in range(0,len(list)):
    SendCourseRequest(list[i])
    time.sleep(1)
复制代码

三、写入测试结果到Excel

01:调用函数读取测试用例

02:调用《课程管理》函数执行

复制代码
from API项目.lib.excelManger import readExcelfrom API项目.lib.sendCourseRequest import SendCourseRequestimport time#1-读取测试用例list=readExcel(r'E:\bijizongjie\API项目\data\教管系统-测试用例V1.2.xls',0)# print(list)#2-执行测试用例dictBody=[]for i in range(0,len(list)):
    row=list[i]
    dictBody=SendCourseRequest(row)
    dictBody.append(dictBody)
    time.sleep(1)
复制代码

 

03:执行结果写回Excel

导入:from xlutils.copy import copy

1):复制一个全新的Excel

复制代码
def getNewExcel(filePath):    #1-1打开Excel,得到workBook对象
    workBook = xlrd.open_workbook(filePath)    #1-2 复制一个全新的工作簿
    workBookNew = copy(workBook)    return workBookNew

调用
workBookNew = getNewExcel(‘路径’)
复制代码

保证输出的Excel表格格式存在:

加入一个参数:formattings_info=True

workBook = xlrd.open_workbook(filePath,formattings_info = True)

2):在新的Excel中得到第一个工作表

workSheetNew= workBookNew.sheet_by_index(0)

3):执行用例,在第7、8列写内容

复制代码
for i in range(0,len(list)):
    row=list[i]
    dictBody=SendCourseRequest(row)
    time.sleep(1)
    test = json.loads(row[6])    if (dictBody['retcode'] == test['code']):        print(row[0], '测试通过')
        workSheetNew.write(i+1,7,'PASS')    else:        print('row[0]','测试不通过')
        workSheetNew.write(i + 1,7, 'FAIL')
        workSheetNew.write(i + 1,8, dictBody['reason'])
复制代码

4):保存

workBookNew.save('路径')

总结

1-demo==评审接口文档

2-编写测试用例

3-执行Excel中的测试用例

3.1定义一个函数,读取测试用例,返回列表

3.2循环列表,发送请求-返回结果(还调用了之前封装的函数)

3.3返回的结果需要写入Excel中



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口管理系统描述(常见接口管理平台简介)
下一篇:接口管理系统鉴权(API接口鉴权方法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~