python3 进行接口测试
最近有研究接口测试,然后查了查资料,发现有两种方法,一种是使用urllib库,一种是使用requests库。而在这里,我使用的是requests库,为什么要用这个呢?
从官方文档看出,python的标准库urllib2提供了大部分需要的HTTP功能,但是呢?API太坑,使用标准库实现会写大堆代码。而requests使用起来的话,就比较简洁。(建议使用的开发工具是 pycharm,安装插件方便。)
下面别的不说,先上一个简单示例:
# -*- coding:utf-8 -*-
__author__ = u'harry'
import requests #先导入包,这是必须的 url = 'http://XXXXXXXXXXXXXXX' #url:接口地址
data = {'XXXX':'XXX'} #data:接口传递的参数
headers = {'Connection':'close'} #header:传递header信息
#files:接口中需要上传文件则需要用到该参数
r = requests.post(url,data = data,headers = headers) #请求url,获得返回的数据信息
print(r.text.encode('utf-8')) #获得的返回数据使用text方法进行获取
使用requets就是这么简单。
简单的使用方法写了,各位客官可以对其进行很多的修改。比如说:封装这块代码,每次可以进行调用;可以添加循环,变为自动化,从excel中读取数据,然后进行循环取值。 等等等等。。。。
在最后再加上一个我封装后的urllib库 与 requests库的对比代码:
# -*- coding:utf-8 -*-
__author__ = u'harry'
import urllib.request
import requests #先导入包,这是必须的
import urllib.parse url = 'XXXXXXX' # url:接口地址
data = {'XXX': 'XXX'} #data:接口传递的参数
headers = {'Connection': 'close'} # header:传递header信息
# files:接口中需要上传文件则需要用到该参数 def requests_test(url,data,headers):
response = requests.post(url,data = data,headers = headers) #请求url,获得返回的数据信息
print(response.text,response.headers) #返回头部信息 def urllib_test(url,data):
data1 = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.Request(url=url,data = data1)
html = urllib.request.urlopen(response)
print(html.read())
print(html.getcode(),html.msg) #获得html返回的状态
print(html.headers) #返回头部信息 #下面调用两个方法:
urllib_test(url,data)
requests_test(url,data,headers)
关于这两个库的get请求,我就不多讲了。
requests: requests.get("url")
urllib:不传入data就可以了。
如果要解决接口返回值的unicode编码,则
html.read().decode('unicode-escape')
python3 进行接口测试的更多相关文章
- python3登陆接口测试
Python3和Python2有很大的语法区别,在实际的项目中,要注意格式.今天用Python3做一个接口测试,由于没有经验,用Python2的语法,调了半天没有搞定,后来一个大神指点了一下,终于拨开 ...
- flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)
前言: 在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去.在不断成长中去磨炼自己. 正文: 时间轴 flask + Python3 实现的的AP ...
- python3接口测试之webservice接口测试第三方库选择及新手问题
一.使用python3做webervice接口测试的第三方库选择suds-jurko库,可以直接pip命令直接下载,也可以在pypi官网下载压缩包进行手动安装 二.安装好后,导入Client:from ...
- Python3 + requests + unittest接口测试
一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...
- python3 接口测试 一般方法
第一步: 导入相关包 import http.client 第二步: 将ip和端口号,使用如下命令,赋值给变量. conn = http.client.HTTPConnection("124 ...
- HttpRunnerManager接口测试平台部署在服务器上(Centos + python3.6 + Mysql5.7 + uwsgi + nginx)
整个思路:HttpRunnerManager + python3.6 + Mysql5.7 + uwsgi + nginx 安装依赖环境,将源代码传到服务器,修改settings,增加uwsgi配置, ...
- flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台
**背景: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够, 2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他 ...
- python3+requests:使用类封装接口测试脚本
前言:接口测试用例较多,我们不可能每个用例都写一次requests,get或者requests,post等,所以对共用方法要进行封装处理 第一次修改:将get请求和post请求单独定义出来,使用过程中 ...
- python3 requests 进行接口测试、爬虫使用总结
Requests 是第三方模块,如果要使用的话需要导入.Requests也可以说是urllib模块的升级版,使用上更方便. 这是使用urllib的例子. import urllib.request i ...
随机推荐
- [NOIP2018]保卫王国 题解
NOIP2018提高组D2T3 ddp虽然好想,但是码量有点大(其实是我不会),因此本文用倍增优化树形DP来解决本题. 题意分析 给一棵树染色,每个节点染色需要一定的花费,要求相邻两个节点至少要有一个 ...
- 日志记录——logging模块
Logging:日志记录是为了跟踪记录软件运行时,发生的事件,包括出错,提示信息等等.log日志级别:日志级别大小关系为:CRITICAL > ERROR > WARNING > I ...
- 记录laravelchina中的微信小程序教程的第四节的安装easy WeChat扩展的报错
composer require "overtrue/laravel-wechat:~5.0 PHP Fatal error: Allowed memory size of 16106127 ...
- 12_进程,线程,协程,IO多路复用的区别
1.进程 1.进程可以使用计算机多核 2.进程是资源分配的单位 3.进程的创建要比线程消耗更多的资源效率很低 4.进程空间独立,数据安全性跟好操作有专门的进程间通信方式 5.一个进程可以包含多个线程, ...
- 存储过程中拼接SQL语句
很多时候我们需要利用参数在存储过程中重新组织SQL语句,在存储过程中拼接的SQL语句只是一个字符串,不会被直接执行,所以加一个execute执行它就可以了.具体看如下演示代码: 代码: set ANS ...
- linux 常用目录的作用
. / 根目录 . /bin 命令保存目录(普通用户就可以读取的命令) . /boot 启动目录,启动相关文件 . /dev 设备文件保存目录 . /etc 配置文件保 ...
- 基于jQuery的鼠标悬停时放大图片的效果制作
这是一个基于jQuery的效果,当鼠标在小图片上悬停时,会弹出一个大图,该大图会跟随鼠标的移动而移动.这个效果最初源于小敏同志的一个想法,刚开始做的时候只能实现弹出的图片是固定的,不能随鼠标移动,最后 ...
- 一篇文章教你快速上手接口管理工具swagger
一.关于swagger 1.什么是swagger? swagger是spring fox的一套产品,可以作为后端开发者测试接口的工具,也可以作为前端取数据的接口文档. 2.为什么使用? 相比于传统的接 ...
- oracle之三手工不完全恢复
手工不完全恢复 4.1 不完全恢复的特点: 1)让整个database 回到过去某个时间点,不能避免数据丢失. 2)想跳过坏日志而继续恢复所有其他工作是不可能的,前滚没有这个功能(考点). 3)必须以 ...
- oracle数据处理之sql*loader(一)
SQL*Loader是oracle提供的可以从多种平面文件中向数据库中加载数据的工具,它比较适合业务分析类型数据库(数据仓库);使用sqlldr工具可以在很短的时间内向数据库中加载大量的数据,像把制作 ...