7赞
574
当前位置:  开发笔记 > 编程语言 > 正文

接口中导入excel测试数据(详)

此篇通过项目来实现怎样导入Excel表格中的测试用例一、编写一个读取Excel数据的函数功能:传一个Excel的位置和第几个工作表,返回数据列表名词:workBook工作簿Exce


此篇通过项目来实现怎样导入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 json
from API项目.lib.courseLIb import add,delete,modify
from API项目.lib.excelManger import readExcel
import time
import sleep
def 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 ret

list
=readExcel(rE:\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 readExcel
from API项目.lib.sendCourseRequest import SendCourseRequest
import time
#1-读取测试用例
list=readExcel(rE:\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中

 



推荐阅读
  • 函数一、函数是什么定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需要调用函数名即可。C中的函数叫function,java中的函数叫method, ... [详细]
  • Runtime前言虽然作者接触ios开发有1年半的时间了,但是对runtime的理解还有有些压力的,毕竟太抽象的东西,再开发中也是很少用到的,网上有太多的解析Runtime的文章,大 ... [详细]
  • 构造url:和pyspider一样方便,具体实现用parse一层一层解析url到最终一层之后爬取 #使用带数字的url用列表表达式 start_urls ... [详细]
  • 引言近期博主在做地理数据可视化方面的研究,pyecharts提供了较好的工具,里面提供了很多图形,尤其是Map和Geo这两种图,一种是地图,一种是地理信息图。pyecharts的基 ... [详细]
  • java实现excel和数据的交互
    1.环境要求本文环境为:数据库为oracle,jdk为jdk7,依赖jar包为ojdbc6-11.2.0.4.0.jar+poi-3.14.jar2.POI使用1.建立工作空间2. ... [详细]
  • 如何解决《在本机ios中侦听事件》经验,为你挑选了2个好方法。 ... [详细]
  • Java中Fork/Join框架机制的介绍
    这篇文章主要讲解了“Java中ForkJoin框架机制的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和 ... [详细]
  • 如何解决《为什么我从date_format()PySpark函数得到null结果?》经验,为你挑选了1个好方法。 ... [详细]
  • 【kimol君的无聊小发明】—用python写视频下载器
    【kimol君的无聊小发明】—用python写视频下载器前言一、爬虫分析1.视频搜索2.视频下载二、我的代码写在最后Tip:本文仅供学习与参考,且勿用作不法用途~前言 ... [详细]
  • 2014-2-14本篇文章翻译自Android官方的培训教程,我也是初学者,觉得官方的Training才是最好的学习材料,所以边学边翻译,有翻译不好的地方,请大家指正。如果我们在开 ... [详细]
  • WSSWebServicesWebReferenceAdministrationService http:_vti_admadmin ... [详细]
  • 这几天看了知乎上子楠大神的机器学习笔记(地址:http:zhuanlan.zhihu.comp21340974),其中线性回 ... [详细]
  • 1.寻找现实世界中逻辑或结构一致的物体。2.对重复的地方进行抽象。3.封装实现的细节,只提供有功能的API。4.在可能的情况下继承。5.注意信息隐藏。类的接口要尽可能的少暴露其内部 ... [详细]
  • 如何解决《从numpy数组获取素数》经验,为你挑选了1个好方法。 ... [详细]
  • 如何解决《在python中交换字节的有效方法》经验,为你挑选了1个好方法。 ... [详细]
author-avatar
殇者残雪_270
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有