川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

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

作者:川石学院 日期:2022-02-09 17:10:48 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的接口测试——requests 的基本了解

系统资源监控(window与类unix)(图1)

本章节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 的基本了解(图2)

  请求方法

   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 的基本了解”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-02-09 17:10:48
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-02-09 17:10:48
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-02-09 17:10:48
  • 建筑工程专业朱同学成功转行为软件测试人!2022-02-09 17:10:48
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-02-09 17:10:48
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-02-09 17:10:48
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-02-09 17:10:48
  • 文科生转行软件测试照样拿下高薪15K!2022-02-09 17:10:48
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-02-09 17:10:48
  • 毕业1年,迷茫的他最终选择转行软件测试2022-02-09 17:10:48