request是python的一个http客户端库,与urllib、urllib2类似。但是使用比urllib2简单。
安装request : pip install requests
1、POST方法
#封装http POST 函数,返回请求response
def httpPost(self,keyword,url):
data=json.dumps(keyword)
headers={"Content-Type":"application/json"}
res=requests.post(url,data=data,headers=headers)
responseJson=res.json()
return responseJson
2、GET方法
#封装http Get函数,返回response
def httpGet(self,keyword,url,data):
headers={"Content-Type":"application/json"}
res=requests.get(url,data=data,headers=headers)
responseJson=res.json()
return responseJson
3、封装request请求函数
#封装请求函数
def httpGetOrPost(self,method,url,data):
# global mres
headers = {"Content-Type": "application/json"}
if method in "get":
mres=requests.get(url,data=data,headers=headers)
elif method == "post":
#postdata = json.dumps(data)
mres=requests.post(url,data=data,headers=headers)
elif method in"put":
mres=requests.put(url,data=data,headers=headers)
elif method in "delete":
mres=requests.delete(url,data=data,headers=headers)
else:
mres = requests.post(url, data=data, headers=headers)
print("错误")
# responseJson=mres.json()
return mres.json()

进行测试:
def test0001(self):
self.url="http://apptest.buddyniu.com/api/apps/BUDDY_API_TEST/accounts/login"
self.method="post"
self.data={"password":"e10adc3949ba59abbe56e057f20f883e","clientSecret":"a123af4e331cf61c0324cd43cbc2135d","accountId":"13590404631"}
res=self.httpGetOrPost(self.method,self.url,self.data)
print res

5、使用excel
由于我的系统为win10,excel后缀为xlsx,故需要使用openpyxl 模块
大概使用方法如下:
def readSheet(self):
wb = load_workbook(r'd:\apitestcase.xlsx')
# 获得所有sheet的名称
print(" 获得所有sheet的名称")
print(wb.get_sheet_names())
# 根据sheet名字获得sheet
a_sheet = wb.get_sheet_by_name('apitestcase')
# 获得sheet名
print(a_sheet.title)
# 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
sheet = wb.active
# 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
b4 = sheet['B1']
print(b4.value)
# 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
b4_too = sheet.cell(row=4, column=2)
print(b4_too.value)

6、封装excel函数
def readSheetdata(self,cell):
wb=load_workbook(r'd:\apitestcase.xlsx')
sheet=wb.active
value=sheet[cell]
print(value.value)
return value.value

7、测试读取excel中的值,之后做请求

excel表格内容大概如下:

这里是第一个测试

def test00001(self):
self.url=self.readSheetdata('C2')
self.data=self.readSheetdata('D2')
self.method=self.readSheetdata('E2')
res=self.httpGetOrPost(self.method,self.url,self.data)

测试结果:

注:
导入excel,这里使用openpyxl ,xlxs后缀的一般使用openpyxl
from openpyxl import load_workbook
载入utf8编码
import sys
reload(sys)
sys.setdefaultencoding('utf8')

转载于:https://www.cnblogs.com/LinxiHuang/p/9297230.html

python+request+Excel做接口自动化测试相关推荐

  1. 基于python+unittest简单实现接口自动化测试实战教程

    目录 1.前言 为什么要做接口自动化测试? 为什么要自己写框架呢? 2.一个现有的简单接口例子 接口信息如下 3.测试思路 原始脚本实现 未优化 优化 第一版 优化 第二版 优化 第三版 最终输出日志 ...

  2. [python自动化]简单实现接口自动化测试(基于python+unittest)

    简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自 ...

  3. 【接口自动化学习笔记】python+requests+excel实现接口自动化

    文章内容参考:pytest+requests+Excel+allure接口自动化测试框架实践_JJJims的博客-CSDN博客 功能        excel驱动的接口自动化+邮件发送 背景 参考了上 ...

  4. python+requests+unittest+excel_接口自动化测试 unittest+request+excel(踩‘坑’)

    通过运行主函数,返回的参数,报json解析错误 正常的返回参数,应该如图 造成这个原因的是: python从excel中解析出来的数据类型不是字典,是字符串,所以无法传递给requests当做请求参数 ...

  5. python runner功能_Python 如何使用 HttpRunner 做接口自动化测试

    点击上方"软测小生",选择"加为星标" 第一时间关注软件测试原创干货! 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 ...

  6. 基于excel实现接口自动化测试

    接口自动化测试 简介 接口用例设计 Excel的操作 接口框架设计 简介 本文档介绍如何使用excel管理接口测试用例并一键执行的实现方式,其中包括 python 读写excel, request库的 ...

  7. python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  8. 转为yaml python_python 如何使用HttpRunner做接口自动化测试

    作者:星安果 来源:AirPython 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 其中, 单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最 ...

  9. python与excel做数据可视化-python操作Excel、读取CVS与数据可视化

    1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...

  10. python做自动化控制postman_使用postman+newman+python做接口自动化测试

    postman是一款API调试工具,可用于测试接口,相类似的工具还有jmeter.soupUI.通过postman+newman+python可以批量运行调试接口,达到自动化测试的效果. 1.Post ...

最新文章

  1. 面试热点Redis分布式锁,再细说一次
  2. boost::endian模块实现benchmark的测试程序
  3. linux shell 数组对比,bash shell之数组使用(牛逼篇)
  4. 如何使用python效率_Python的5中提高效率的用法
  5. php引擎,php基于什么引擎
  6. Java技术——你真的了解String类的intern()方法吗
  7. HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。...
  8. 【数据结构笔记02】什么是算法
  9. java 常量 类型_Java的常量及数据类型
  10. html文本框%3cdiv%3e,index.html
  11. 项目版本号的命名规范
  12. Python如何安装pandas库,简单3步解决,亲测有效。
  13. ckfinder 配置 php,CKEditor4+CKFinder3(php版本)安装及配置方法
  14. IT毕业生给学弟学妹们的真心话——离校座谈记录
  15. FTP:vsftpd中的local_umask和anon_umask
  16. Dev-cpp自定义主题:
  17. 英飞凌硅麦可以接收到超声波吗?
  18. 机器学习 第三节 第十三课
  19. Camera2架构学习(二)——CameraServer和CameraProvider的启动初始化
  20. java实战——简单的媒体播放器

热门文章

  1. 决策树(八)--随机森林及OpenCV源码分析
  2. PAT (Basic Level) Practice1014 福尔摩斯的约会
  3. kafka监控工具Burrow安装
  4. Win32汇编——过程控制(进程调试和进程隐藏)
  5. c语言不使用加运算符做加法运算
  6. AI独角兽商汤科技的内部服务容器化历程
  7. 数据结构中的7种排序算法
  8. 信息存储服务公司Everlaw获810万美金注资
  9. java.io.StreamCorruptedException: invalid stream header: 20200909
  10. java实现倒计时源码分享