美文网首页
接口测试——requests 的基本了解

接口测试——requests 的基本了解

作者: 82a7fe2508f4 | 来源:发表于2022-06-30 13:58 被阅读0次

    ● 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 的基本了解

          本文链接:https://www.haomeiwen.com/subject/qvjfbrtx.html