Python自动化测试:API接口自动化——requests、webSocket

接口自动化测试1


本文介绍了借助Python的request模块是进行基本接口请求与测试的简单示例

一、requests

Python request是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果(response响应对象)。使用前需导入该模块,基本的请求方式如下:

  • GET: 请求指定的页面信息,并返回实体主体。
  • POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
  • PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE: 请求服务器删除指定的页面。

备注:get 和 post比较常见 GET请求将提交的数据放置在HTTP请求协议头中;POST提交的数据则放在实体数据中;

  • response:响应对象
基本响应参数. 含义
close() 关闭与服务器的连接
cookies 返回一个 CookieJar 对象,包含了从服务器发回的 cookie
content 返回响应内容,以字节为单位
headers 返回响应头,字典格式
json() 返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)
links 返回响应的解析头链接
next 返回重定向链中下一个请求的 PreparedRequest 对象
reason 响应状态的描述,比如 "Not Found" 或 "OK"
request 返回请求此响应的请求对象
status_code 返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
text 返回响应的内容,unicode 类型数据
url 返回响应的 URL

二、简单示例

1.导入/引入库

c 复制代码
import requests   #导入requests模块
import json       #导入json模块

备注:requests库为第三方资源库,则需要另外下载。

  • 连网情况下:进入Python安装路径下(如D:\CStools\python3.10.5\Scripts)文件夹中,路径输入cmd回车,进入命令窗口:输入pip install requests,下载完成,可以输入pip list,查看列表中是否成功安装了requests包;

若没有下载pip(Python 包管理工具),则可以参考作者之前的文章下载安装常用的资源包;

2.请求与响应示例

1>简单访问百度主页-GET请求

c 复制代码
# 导入 requests 包
import requests

# 发送请求
x = requests.get('https://www.baidu.com/')

# 返回 http 的状态码
print(x.status_code)

# 响应状态的描述
print(x.reason)

结果:

2>简单的登录请求-POST请求

备注:登录成功之后,提取身份识别数据sid,由接口响应的数据中提取,可提前抓包/打印response.content查看接口返回的数据与格式,便于利用response对象.提取。

结果:

3>保存cookies至头信息headers

4>其他接口请求时携带headers

三、webSocket

WebSocket协议是对http的改进,可以实现client 与 server之间的双向通信用于页面的实时更新; WebSocket连接一旦建立就始终保持,直到client或server 中断连接,弥补了http无法保持长连接的不足,方便了客户端应用与服务器之间实时通信。

  • 基于TCP,一次握手就能建立连接,支持双向通信,可保持长连接;
  • 使用前需要安装WebSocket包,pip install websocket、pip install websocket-client

webSocket连接与数据收发示例

import json

import requests

from websocket._core import create_connection

结果:

备注:建立连接后,通过发送不同的数据,得到不同的响应数据

相关推荐
雨墨✘几秒前
PHP怎么执行Shell命令_exec与shell_exec区别说明【说明】
jvm·数据库·python
2201_7568473321 分钟前
mysql字段长度不够用了怎么办_使用alter table扩大varchar长度
jvm·数据库·python
祁_z25 分钟前
Python项目依赖管理:venv与conda
python
overmind26 分钟前
oeasy Python 120[专业选修]列表_直接赋值_浅拷贝_shallowcopy_深拷贝_deepcopy
linux·windows·python
ZC跨境爬虫32 分钟前
海南大学交友平台开发实战 day11(实现性别图标渲染与后端数据关联+Debug复盘)
前端·python·sqlite·html·json
星星也在雾里38 分钟前
Anaconda命令行配置Jupyter Notebook虚拟环境
python·jupyter
极光代码工作室38 分钟前
基于机器学习的信用卡欺诈检测系统设计
人工智能·python·深度学习·机器学习
迷藏49444 分钟前
**超融合架构下的Go语言实践:从零搭建高性能容器化微服务集群**在现代云原生时代,*
java·python·云原生·架构·golang
深度学习lover1 小时前
<数据集>yolo 船舶识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·船舶分类识别
测试秃头怪1 小时前
Python+selenium搭建Web自动化测试框架
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例