Python 3 读取和存储Excel数据(应用到接口测试)

Python 3 读取和存储Excel数据(应用到接口测试)1、利用cmd命令安装第三方库openpyxl同时支持读写操作,支持的Excel是以.xlsx结尾的文件。命令:pipinstallopenpyxl【命令:pipinstallreq

大家好,又见面了,我是你们的朋友全栈君。

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

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

   命令: pip install openpyxl

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

<span role="heading" aria-level="2">Python 3 读取和存储Excel数据(应用到接口测试)

2、新建Excel文件

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

                          <span role="heading" aria-level="2">Python 3 读取和存储Excel数据(应用到接口测试)   ——复制粘贴———-><span role="heading" aria-level="2">Python 3 读取和存储Excel数据(应用到接口测试)

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)   

 

 

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

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

<span role="heading" aria-level="2">Python 3 读取和存储Excel数据(应用到接口测试)

 

然后,通过我们的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’)

    

 

  

 

 

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155958.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 克莱姆法则应用_克莱姆和克拉默法则

    克莱姆法则应用_克莱姆和克拉默法则克莱姆法则(由线性方程组的系数确定方程组解的表达式)是线性代数中一个关于求解线性方程组的定理,它适用于变量和方程数目相等的线性方程组。概念含有n个未知数的线性方程组称为n元线性方程组。1)当其右端的常数项b1,b2,…,bn不全为零时,称为非齐次线性方程组:其中,A是线性方程组的系数矩阵,X是由未知数组成的列向量,β是由常数项组成的列向量。非齐次线性方程组的矩阵形式:2)当常数项全为零…

    2025年11月3日
    4
  • 史上最全面的Neo4j使用指南「建议收藏」

    史上最全面的Neo4j使用指南「建议收藏」Neo4j图形数据库教程Neo4j图形数据库教程第一章:介绍Neo4j是什么Neo4j的特点Neo4j的优点第二章:安装1.环境2.下载3.开启远程访问4.测试第三章:CQL1.CQL简介2.Neo4jCQL命令/条款3.Neo4jCQL函数4.Neo4jCQL数据类型第四章:…

    2022年7月27日
    24
  • 大数据应用实例[通俗易懂]

    大数据应用实例[通俗易懂]通过对全国各地不同时间段的购买华硕笔记本电脑的销售量进行大数据处理,将其通过汇总分析,即可制成图表的格式,使用户能对华硕笔记本销售量进行研究,可以查看出华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),购买的人数地域分布量,及购买的人群年龄分布,性别分布等等首先就是对华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),整体同比及移…

    2022年6月2日
    50
  • 乘法速算(两位数)

    乘法速算(两位数)法速算(两位数)  此方法可以锻炼孩子的思维速度.思维方向.特别的作用到底是什么?我也不是很清楚.但我觉得学习他总是有好处的.因此介绍给大家.这是我从网站上查到的一部分,从一些书籍中整理而来           还有我自己总结的一点.             闲话少说.进行介绍:(一)十几乘以十几例:           13*12方法:百位是1

    2022年6月7日
    71
  • 实现关联条件的casewhen效果

    实现关联条件的casewhen效果 selectp.pcmxid,    j.csjtf*p.jsrs+j.dpf*p.jsrs+j.zsf*p.jsrs*p.sjts+    j.clbzf*p.jsrs*p.sjts+j.bxf*p.jsrs*p.sjtsasjsxj frompcmxp   leftjoin(—-关联一个过渡表 sele…

    2025年9月19日
    6
  • Docker暴露2375端口导致服务器被攻击解决方法!

    Docker暴露2375端口导致服务器被攻击解决方法!相信了解过dockerremoteAPI的同学对2375端口都不陌生了,2375是docker远程操控的默认端口,通过这个端口可以直接对远程的dockerdaemon进行操作。当$HOST主机以dockerdaemon-H=0.0.0.0:2375方式启动daemon时,可以在外部机器对$HOST的dockerdaemon进行直接操作:docker-Htcp://$HOS…

    2022年4月29日
    262

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号