当前位置: 首页 > news >正文

接口自动化测试-python-笔记

概念

接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。

自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程。

实现方式

使用接口测试工具来实现,比如:JMeter

通过编写代码来实现

接口测试工具的不足

1.测试数据不好控制

2.不方便测试加密接口

3.扩展能力不足

Requests库

介绍

Requests库是用Python编写的,基于urllib,采用Apache2Licensed开源协议的HTTP库;相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求;

安装

pip install requests

发送请求

常见的HTTP请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS

使用requests发送网络请求非常简单,只需要调用HTTP请求类型所对应的方法即可。

GET请求

import requests
response = requests.get("http://www.baidu.com")

请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。

POST请求

import requests
#:paramurl:请求的URL
#:paramdata:(可选)要发送到请求体中的字典、元组、字节或文件对象
#:paramjson:(可选)要发送到请求体中的JSON数据
#:rtype:requests.Response
response=requests.post(url,data=None,json=None)

其他请求类型

import requests

response=requests.put("http://www.baidu.com",data={"key":"value"})
response=requests.delete("http://www.baidu.com")
response=requests.head("http://www.baidu.com")
response=requests.options("http://www.baidu.com")

传递URL参数

如果需要在URL的查询字符串中传递数据,可以使用params参数来定义,params传递的参数可以是字符串或字典。

import requests

response=requests.get("http://www.baidu.com",params="kw=python")
print(response.url)#http://www.baidu.com/?kw=python

params={"k1":"v1","k2":["v2","v3"]}
response=requests.get("http://www.baidu.com",params=params)
print(response.url)#http://www.baidu.com/?k1=v1&k2=v2&k2=v3

响应内容

请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。

response.status_code 状态码
response.url 请求url
response.encoding 查看响应头部字符编码
response.headers 头信息
response.cookies cookie信息
response.text 文本形式的响应内容
response.content 字节形式的响应内容
response.json() JSON形式的响应内容

JSON响应内容

如果请求响应的内容为JSON格式的数据,则可以直接调用response.json()方法获取数据,因为requests中内置了JSON解码器,帮助我们处理JSON数据。

response=requests.get("http://www.baidu.com")
json_data=response.json()

如果JSON解码失败,response.json()就会抛出一个异常

定制请求头

如果需要为请求添加请求头数据,只需要传递一个字典类型的数据给headers参数就可以了。

headers={"area":"010"}
response=requests.get("http://www.baidu.com",headers=headers)

Cookie

获取响应信息中的cookie数据:

response=requests.get("http://www.baidu.com")
print(response.cookies)

发送请求时添加cookie数据,可以使用cookies参数:

requests.get("http://www.baidu.com",cookies={"c1":"v1"})

Session

在requests里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。会话能让我们在跨请求时候保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie。

创建session对象

session=requests.Session()

得到session对象后,就可以调用该对象中的方法来发送请求。

相关文章:

  • OpenPPL PPQ量化(3):量化计算图的加载和预处理 源码剖析
  • ES6 简介(二)
  • Spring Boot 最新版3.x 集成 OAuth 2.0实现认证授权服务、第三方应用客户端以及资源服务
  • ESP32开发板Arduino IDE更新指南
  • 【day4】 谷粒商城-前端相关(不全,没认真看)
  • 程序编译的过程
  • Spring由哪些模块组成
  • 单链表反转C语言代码
  • Visual Paradigm 17.X Crack
  • 【微服务】RabbitMQ高级篇
  • Dubbo-----------------项目整合和分析
  • ROS2 入门应用 工作空间
  • AOSP 8.0 系统启动之四ART虚拟机启动(一)
  • 1079 Total Sales of Supply Chain
  • 基于DemonSet方式收集容器日志输出实践
  • 牛客网:JZ65 不用加减乘除做加法(详解)
  • 设计模式:观察者模式
  • C/C++基础 memset()函数的用法
  • LeetCode 2176. 统计数组中相等且可以被整除的数对
  • 直线生成算法(DDA算法)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉