一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“接口测试——requests 的基本了解”。
本章节requests基本介绍:
requests介绍及安装
requests原理及源码介绍
使用requests发送请求
使用requests处理响应
get请求参数
发送post请求参数
请求header设置
cookie的处理
https证书的处理
文件上传、下载
requests介绍
requests是python第三方的HTTP模块库。
它基于urllib,又比urllib更加简单高效。
支持Get、Post、Put、Delete、Head、Options等HTTP请求。
工具:jmeter,postman,soupui等
框架:robot framework等
编程:urllib,httpclient
requests安装
python编程环境准备:python3.6+pycharm
通过pip工具在线安装:
pip install requests
pip install -i https://mirrors.aliyun.com/pypi/simple/ requests
安装验证:
查看requests版本信息:
pip show requests
pycharm中导入模块正常:import requests
requests工作原理及源码介绍
请求方法
requests.get(url, params=None, **kwargs) # get请求
requests.post(url, data=None, json=None, **kwargs) # post请求
requests.request(method, url, **kwargs) # 通用请求
requests-get请求
get请求特点:
请求参数在url中,键值对形式。
response = requests.get(url)
response = requests.get(url, params=None)
response = requests.get(url, params=None, **kwargs)
requests-post请求
post请求特点:
请求参数在bady中,键值对形式。
response = requests.post(url, data=None)
response = requests.post(url, json=None)
response = requests.post(url, data=None, **kwargs)
requests-可选参数
request请求参数:
params:字典等类型,最终添加到请求url中的参数,
data:字典等类型,最终添加到请求body中的参数,
json:一个json格式的序列化的Python对象,
headers:字典等类型,请求的header,
cookies:字典类型,请求的cookie,
files:字典类型,向服务器传输文件,
auth: 元组,HTTP鉴权信息,
verify:布尔值,是否验证server的TSL证书,
timeout:数值,设定超时时间,
allow_redirects:布尔值,是否运行重定向,
stream:布尔值,响应内容是否直接下载,
requests-Response对象
requests的方法会返回Response对象,即响应对象
response = requests.get(url, params=None, **kwargs) #
响应对象的属性和方法:
response.status_code #获取响应结果码
response.encoding #获取响应的编码格式
response.headers #获取响应头
response.content #获取二进制形式响应内容
response.text #获取字符串形式响应内容
response.json() #获取json格式响应内容
response.url #获取请求的url
requests-header参数
request请求header参数:
字典格式,可以放user-agent, cookie等内容,参考浏览器的header
发送请求时,需要带user-agent信息:
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105
Safari/537.36"}
response = requests.get(url, headers=header)
requests-cookies参数
request请求cookies参数:
字典格式,可以放多个cookie数据,name:value
发送请求时,需要带cookie信息:
cookies={"ECSCP_ID":"cf306022f9f921c97ee70b907f6be4e63c96aae2"}
response = requests.get(url,cookies=cookies)
requests-Session会话保持
登录后再操作,这种场景需要保持用户状态。可以通过Session类实现。
Session对象可以自动处理会话期间的Cookie,也可以通过它对整个会话做
统一的设置。
se1 = Session() # 创建Session对象,自动处理
se1.post() # 先登录
se1.get() # 登录后的操作
requests-files参数
files参数:
字典格式,文件上传参数,'name': file-objects或者'name': file-tuple
文件上传:
files={"file":("goods_list.csv",open("C:\\Users\\Administrator\\Desktop\\goo
ds_list.csv","rb"),"application/vnd.ms-excel")}
response = requests.get(url, files=files)
requests-verify参数
request请求verify参数:
布尔值,默认是True验证TSL证书,可以设置为False不验证证书
请求走https协议时使用:
response = requests.get(url, verify=False)
requests-stream参数
steam参数:
字典格式,文件下载时参数,主要针对文件比较大的情况。
steam=False,默认值,指直接下载。
steam=True,分段下载。避免立即将内容读入内存,推迟下载响应体。
文件分段下载:
with requests.post(url,data=data,stream=True) as res:
print(res.headers['content-Length'])
file1 = open("d:\\export_file.zip",mode="wb")
for chunk in res1.iter_content(512):
file1.write(chunk)
print(chunk)
file1.close()
今天关于“接口测试——requests 的基本了解”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!