我是靠谱客的博主 粗暴鸡,最近开发中收集的这篇文章主要介绍python做excel自动化步骤-Python+excel实现的简单接口自动化 V0.1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

好久没写博客了。、最近忙着工作以及新工作的事。、

看了下以前写的简单接口自动化,拿出来总结下,也算记录下学习成果

先来贴一下最后的结果,结果是写在原来的excel中

908170-20160415162702441-686192095.png

执行完毕后,会将结果写入到"状态”列;

执行通过的话,如果返回的json有message写入"response”列,如果执行失败,则会将返回的json也写入其中

前期准备:

在excel中依次填上接口、请求类型、需要传的数据、期望返回的状态码以及该接口的说明

代码如下,写的很简陋,甚至都没定义方法什么的,姑且称之为V0.1 后面学有所得再深入修改

#coding:utf-8

importrequestsimportjsonimportxlrdimportosfrom xlutils.copy importcopy

excel= 'apidemo.xls' #定义存放用例的excel路径,当前路径下

data =xlrd.open_workbook(excel)

host= 'http://xxxxxxx/api'#测试服,这个自己写吧

headers = {'Accept-Version':'v2','content-type': 'application/json'} #定义headers

result= [] #用来存放验证结果

responseValue = [] #存放返回的数据

table =data.sheet_by_index(0)

nrow= table.nrows #获取行数

for i in range(1,nrow): #循环获取每行中的数据

requestMethod = table.cell(i,2).value #方法,post、get、delete

url = host + table.cell(i,1).value #拼接url

payload = table.cell(i,3).value #定义要传的值

ex = table.cell(i,4).value #获取期望的返回值,目前是用status_code来判断

if requestMethod == 'get': #不同的方法发不同的请求

r = requests.get(url,headers =headers)elif requestMethod == 'post':

r= requests.post(url,data = payload,headers =headers)elif requestMethod == 'delete':

r= requests.delete(url,data = payload,headers =headers)if r.status_code == ex: #如果和期望值一样,case通过

result.append('true')if 'message' in r.json().keys(): #这个看情况而定吧,这边例如账号密码错误也是在message里的

responseValue.append(r.json()['message']) #将message先存入response

else:

responseValue.append('')else:

result.append('false') #如果结果不对的话,如果有message就写,没有就全部写入

if 'message' inr.json().keys():

responseValue.append(r.json()['message'])else:

responseValue.append(json.dumps(r.json(),ensure_ascii=False))

r.close()print('共有%d个url,当第%d个执行完毕'%(nrow-1,i))

book=copy(data)

sheet1= book.get_sheet(0) #copy原来的excel

for j in range(1,nrow):#将结果写入到对应的表格中 #将结果和response都写入到复制的工作表中

sheet1.write(j,5,result[j-1])

sheet1.write(j,6,responseValue[j-1])

os.remove(excel)

book.save(excel)#移除原来的excel,保存新的excel

代码中获取返回的message,要看实际情况,我这边是开发将错误都通过message返回,比如请求的数据不存在,请求注册的手机号已经注册过等等

代码中存在很多不足,比如没有捕获异常,如果有异常出现就完蛋了。、

另外只对返回的状态码进行了判断,感觉还有很多可以做的事,比如对返回的json的结构进行判断,对数据库进行查询,比如delete的请求,接口返回成功,但是不一定数据库真的已经删除了

还有之前用appium时用到的unittest和HTMLTestRunner,感觉都可以和这个一起使用;

如果那样的话,感觉可以定制case,针对每个接口的不同功能,做针对性的判断

增加下遇到的小问题:

1.对返回的json进行判断,json返回是中文时的问题

json.dumps(r.json(),ensure_ascii=False)

2.最后的excel报告的样式没有了

data = xlrd.open_workbook(excel,formatting_info=True)

最后

以上就是粗暴鸡为你收集整理的python做excel自动化步骤-Python+excel实现的简单接口自动化 V0.1的全部内容,希望文章能够帮你解决python做excel自动化步骤-Python+excel实现的简单接口自动化 V0.1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部