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

结果:

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

相关推荐
NiceCloud喜云17 分钟前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
AI玫瑰助手1 小时前
Python函数:默认参数的定义与注意事项
开发语言·python·信息可视化
weixin_468466851 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
weixin_468466851 小时前
工业相机成像原理新手入门指南
人工智能·自动化·机器视觉·工业相机·光学·光学系统·成像原理
小糖学代码1 小时前
LLM系列:环境搭建:5.Python-dotenv 环境变量管理
人工智能·python·深度学习·神经网络
U盘失踪了1 小时前
claude code 用 Playwright + “webapp-testing” 技能包,编写前端自动化
自动化
智慧物业老杨2 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
橙橙笔记2 小时前
Python的学习第一部分
python·学习
weixin_468466852 小时前
MoneyPrinterTurbo 短视频自动化生产实战指南
运维·人工智能·自动化·大模型·音视频·moneyprinter
voidmort3 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法