编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

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

wxchong 2024-08-31 04:00:36 开源技术 8 ℃ 0 评论

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表