python与excel的应用-Python 3 读取和存储Excel数据(应用到接口测试)

1、利用cmd命令安装第三方库

openpyxl 同时支持读写操作,支持的Excel是以.xlsx结尾的文件。

命令: pip install openpyxl

【命令:pip install requests (安装http请求requests也是一样的)】

1442412-20180930002141619-1945572543.png

2、新建Excel文件

新建Excel的时候,需要在电脑上新建一个后缀为xlsx的文件,再通过复制粘贴的方式放到PyCharm工具里边。

1442412-20180930003930713-1649991141.png ------复制粘贴---------->

1442412-20180930004148878-1988569191.png

3、操作工作簿

引入工具包:from openpyxl import load_workbook

打开工作簿:open_wb=load_workbook('demo_excel.xlsx') #传一个工作簿名称参数

定位表单:sheet=open_wb['Sheet1'] #传一个表单名,也可使用get方式获取表单

定位坐标:value=sheet.cell(1,3).value #获取到第一行第三列的值

更新数据:sheet.cell(5,3).value='abc' #将第五行第三列的值改为abc

保存工作簿(一般放最后):

open_wb.save('demo_excel.xlsx')

#调用save方法保存,但值得注意的是, 当数据更新时,需要关闭Excel表方可保存成功。

4、接口测试:

学习以上知识之后,我们怎么通过Python操作Excel做接口测试?get / post

(可以结合jmeter做接口测试对应记忆)

import requests

url='http://.........com' #URL地址

req=requests.get(url) #发起get请求

req=requests.post(url) #发起post请求

login_data={“mobilephone”:“183.。。。”,”pwd”:“123”} #传参:http请求是以字典形式传入的

下一个请求若需要鉴权,则需要从上一个请求中获取及在下一个请求去发送cookie、session、token,则需要接下来这些操作:

从返回的结果中获取cookie:(注:Python只识别:cookies,而不是cookie)

假如此处是个简单的下单(我们用pay表示)操作:

pay_url="http://........."

pay_data={通过字典传参}

pay_req=requests.get(参数1,参数2,cookies=req.cookies)

#这种方法只识别前2个值,所以传入cookie只能以上边的方法传入。

查看结果(两种方法):(http请求返回的数据格式:json、xml、html)

1、res=req.text #三种结果都可以返回

2、res=req.json() #json只能返回结果是json格式的

我们也可以通过session方式传值:(只能传入1个参数)

s=requests.session #用一个s来接收返回的结果,以后我们在进行请求时,都用s去传。

pay_response=s.get(参数1,params=参数2)

那么,理解上述的知识后,我们用函数及参数化,就可以做这个简单的接口测试了。

首先,创建好我们的测试用例:以下边这个表格为例(注:写测试用例时,返回结果及比对结果为空)。

1442412-20180930134623450-1612328276.png

然后,通过我们的pycharm写入执行用例的代码,就可以妥妥的做接口测试啦。

#Python读取Excel数据的函数方法:

from openpyxl import load_workbook

def demo_excel(file_name,sheet_name,start,end):

open_wb=load_workbook(file_name)

sheet=open_wb[sheet_name]

data_list=[]

for i in range(start,end):

data_dict={}

data_dict['ID']=sheet.cell(i,1).value

data_dict['TITLE']=sheet.cell(i,2).value

data_dict['METHOD']=sheet.cell(i,3).value

data_dict['URL']=sheet.cell(i,4).value

data_dict['DATA']=sheet.cell(i,5).value

data_dict['CODE']=sheet.cell(i,6).value

data_list.append(data_dict)

return data_list

t=demo_excel('demo_excel.xlsx','Sheet1',2,6)

#发起http请求的函数方法:

import requests

cookie=None

def http_request(req_url,req_data,method):

global cookie

if method=='get':

response=requests.get(req_url,req_data,cookies=cookie)

else:

response=requests.post(req_url,req_data,cookies=cookie)

if response.cookies!={}:

cookie=response.cookies

result=response.text()

return result

#执行测试用例:

open_wb=load_workbook('demo_excel.xlsx')

sheet=open_wb['Sheet1']

for item in t:

print('正在执行第{0}条用例:{1}'.format(item['ID'],item['TITLE']))

url=item['URL']

data=item['DATA']

method=item['METHOD']

result=http_request(url,eval(data),method)

print(result)

#返回结果:

sheet.cell(item['ID']+1,7).value=str(result)

#结果比对:

if result['code']==str(item['CODE']):

RESULT='PASS'

else:

RESULT='FAIL'

sheet.cell(item['ID']+1,8).value=RESULT

open_wb.save('demo_excel.xlsx')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值