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

结果:

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

相关推荐
hhcgchpspk19 分钟前
flask服务端页面预防被爬措施
后端·python·flask·网络爬虫·防爬
小小张说故事23 分钟前
Python 里 copy.copy() 和 deepcopy() 到底差在哪:拆开 __copy__、__deepcopy__ 和那个防止无限递归的 memo 字典
python
vipxieliang24 分钟前
Python collections:高效容器与实战案例
后端·python
青少儿编程课堂39 分钟前
蓝桥杯青少组图形化 STEMA 省考(报名倒计时·11/22开考)+ 全国青少年信息素养大赛 2026—2027赛季 + 电子学会图形化考级:校园华容道大闯关
c++·python·算法·bfs·信息学竞赛
特创数字科技1 小时前
写了个 Windows 下载器:一键拉 GitHub / Gitee 源码,带 SHA256 校验
python·github
郝学胜-神的一滴2 小时前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn
天天被压力2 小时前
【A股分钟级高频数据完全手册 #09】A股历史分时交易数据接口:普通分时怎么批量下
java·人工智能·python
天天被压力2 小时前
【A股分钟级高频数据完全手册 #10】股票实时行情数据接口Python:公开源实时交易取数
java·人工智能·python
特立独行的猫A12 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持12 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断