Python+reuqests自动化接口测试
1.最近自己在摸索Python+reuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快!
思路--1.通过python读取Excel中的接口用例,2.通过python的函数调用,get/Post 进行测试,3把测试结果写到一个新的Excel表格中!
1:编写接口测试用例数据,只是举了两个例子:

2.:函数方法 URl: 服务器地址,host:接口地址,type(请求类型:get或者post),data:参数
import time
import requests
#URl: 服务器地址,host:接口地址,type(请求类型:get或者post),data:参数
def ruqests_test(url,host,type,data):
if type=='get':
#发送请求 get
r=requests.get("%s%s" %(url,host),data=data) return r else :
#发送请求 get
r=requests.post("%s%s" %(url,host),data=data)
return r
3:读取Excel接口用例,调用函数发送请求,接收返回信息,写入Excel文档中
#coding=utf-8
import xlrd
import Test03
import time
import xlwt
#根据索引读取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的索引,by_index:表的索引
def excel_table_byindex(file= 'C:\Users\Administrator\Desktop\Test.xlsx',colnameindex=0,by_index=0):
data =xlrd.open_workbook(file)
table = data.sheets()[by_index]
nrows = table.nrows #行数
ncols = table.ncols #列数
colnames = table.row_values(colnameindex) #某一行数据
list =[]
for rownum in range(1,nrows): row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
#print app[colnames[i]]
list.append(app)
return list
if __name__=="__main__":
tables = excel_table_byindex()
i = 1
wb = xlwt.Workbook() # 新建了一个新的工作表
sheet1 = wb.add_sheet('Sheet 1')
wb.add_sheet('Sheet 2')
#列表名称
row1 = sheet1.row(0)
row1.write(0, u'地址')
row1.write(1, u'状态码')
row1.write(2, u'返回信息')
row1.write(3, u'时间')
for row in tables:
#row['value1'] if row['value1'] == ''else int(row['value1']):三目运算,当读取的值为空,就不转换为int类型
r=Test03.ruqests_test(row['url'],row['host'],row['type'],{row['key1']:row['value1'] if row['value1'] == ''else int(row['value1']),row['key2']:row['value2'] if row['value2'] == ''else int(row['value2'])})
row1 = sheet1.row(i)
row1.write(0, r.url)
row1.write(1, r.status_code)
row1.write(2, r.text)
row1.write(3,time .strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
wb.save('C:\Users\Administrator\Desktop\Test00.xlsx')
i=i+1
结果如图所示:

有什么不明白的可以留言! 希望可以帮到一些人!
Python+reuqests自动化接口测试的更多相关文章
- python - 接口自动化 - 接口测试基础知识
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_接口测试基础知识一.py@ide: PyCharm Commun ...
- python接口自动化(四)--接口测试工具介绍(详解)
简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进行接口测试,能够提供 ...
- python+requests+unittest执行自动化接口测试
1.安装requests.xlrd.json.unittest库 <1>pip 命令安装: pip install requestspip install xlrdpip install ...
- 《用Python做HTTP接口测试》学习感悟
机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...
- 2020年第二期《python接口自动化+测试开发》课程,已开学!
2020年第二期<python接口自动化+python测试开发>课程,12月15号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:12月15号-3月29 ...
- python接口自动化18-multipart/form-data上传多个附件
前言 reuqests上传一张图片到服务器,前面已经介绍过了,那么如何在提交BUG的时候,上传附件呢? 上传附件的时候,文件的name参数名称是一样的,python里面key是不可以重复的,又如何处理 ...
- Appium + Python App自动化第一个脚本
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
- Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要
1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...
- Python 开发与接口测试学习笔记
这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...
随机推荐
- 芝麻HTTP:非关系型数据库存储
NoSQL,全称Not Only SQL,意为不仅仅是SQL,泛指非关系型数据库.NoSQL是基于键值对的,而且不需要经过SQL层的解析,数据之间没有耦合性,性能非常高. 非关系型数据库又可细分如下. ...
- SOA和微服务架构
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...
- Kettle根据时间戳同步数据实现
1 Kettle总体步骤 由于Kettle自身的特殊性以及在多个步骤中kettle自身处理数据库事务的特殊性,尝试了很多种方案,最终确定暂使用如下方案. 1.使用此方案可以解决kettle本身数据库事 ...
- 实现一个简单的订阅与发布模式的代码块,和redux
/** * Created by Mrzou on 2018/3/11. */ //实现简单的订阅与发布模式的代码块export function pattern() { let currentLis ...
- 端口被占用:android studio 虚拟机adb.exe已停止工作的处理
浏览:2190 | 更新:2017-09-16 05:00 1 2 3 4 5 6 分步阅读 在搭建android studio开发环境后,开始编程调试程序时,不管运行虚拟机还是真机,都不停出现&qu ...
- flash数据交互
新随笔 联系 订阅 管理 随笔 - 14 文章 - 5 评论 - 0 安卓中webview读取html,同时嵌入Flex的SWF,交互 安卓activity与html交互很简单,用javascri ...
- webpacke踩坑-新手
1.题叶-webpack入门指南 2.webpack入门系列 3.w3ctech的webpack入门及实践 4.Express结合Webpack的全栈自动刷新 5.webpack 单页面应用实战 6. ...
- angularJs $mdDialog和$uibModal弹框关闭传值
$mdDialog以一个点击button按钮出现弹框为例: $scope.btn=function($event,row){ var dScope = $scope.$new(true); dScop ...
- 如何降低90%Java垃圾回收时间?以阿里HBase的GC优化实践为例
过去的一年里,我们准备在Ali-HBase上突破这个被普遍认知的痛点,为此进行了深度分析及全面创新的工作,获得了一些比较好的效果.以蚂蚁风控场景为例,HBase的线上young GC时间从120ms减 ...
- 杭电oj-1002-A+B Problem
Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...