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

接口自动化测试1

  • 一、requests
  • 二、简单示例
    • 1.导入/引入库
    • 2.请求与响应示例
      • 1>简单访问百度主页-GET请求
      • 2>简单的登录请求-POST请求
      • 3>保存cookies至头信息headers
      • 4>其他接口请求时携带headers
  • 三、webSocket
    • webSocket连接与数据收发示例


本文介绍了借助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.导入/引入库

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请求

在这里插入图片描述

# 导入 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
在这里插入图片描述
结果:
在这里插入图片描述
备注:建立连接后,通过发送不同的数据,得到不同的响应数据
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439645.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssGSEA -- 学习记录

文章目录 biref统计学原理其他注意事项代码实现部分 biref 前情提要链接: https://blog.csdn.net/jiangshandaiyou/article/details/136536349 https://blog.csdn.net/jiangshandaiyou/article/details/134457515 相比起GSA,GSEA不再关注于差异基因&…

【C++干货基地】面向对象核心概念 | 访问限定符 | 类域 | 实例化 | 类对象模型

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

优思学院|拉丁方实验设计是什么?

今天,我要给大家带来一个六西格玛实验设计的小窍门——拉丁方设计。这是一种巧妙的方式,帮助我们探索不同因素(输入)对结果(输出)的影响,同时巧妙地处理那些我们不想要的“噪音因素”。 想象一…

GAMMA电源维修高压直流电源ES30P-5W ES系列

美国Gamma高压电源维修型号:D-ES30R-10N-5W/M,LXR30-1N,XRM5N-100W,ES50P-10W/DDPM,ES60P-10W/DDPM,RR20-20P/DDPM,ES30P-10W,ES60P-10W DDPM,RR60-18P/220V,…

Matlab偏微分方程拟合 | 完整源码 | 视频教程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…

springboot 加入 日志+ controller 加入全局异常捕获

提下比较好点 包含将捕获的异常堆栈完整的返回给前端。方便 后端人员用 swagger 或 knife 工具验证接口时,直接看到异常。 有啥用呢?在现场环境,或不方便远程服务器机器时,非常有用!!! 同时&…

ChatGPT数据分析应用——漏斗分析

ChatGPT数据分析应用——漏斗分析 ​ 漏斗分析在数据分析中也比较常用,主要是用于发现各个转化流程中哪个环节有问题。接下来我们让ChatGPT解释这个方法的概念并提供相应的案例。发送如下内容给ChatGPT。 ​ ChatGPT收到上述内容后,返回如下结果。 漏斗…

分布式架构下 网络通信的底层实现原理(一)

什么是通信? 当我们通过浏览器访问一个网址时,一段时间后该网址会渲染出访问的内容,这个过程是怎么实现的呢? 这种通信方式是基于http协议实现的,那么什么是协议? 像一个中国人和一个外国人交流时&#xf…

Redis 配置文件详解

Units 单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感。 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with …

无尘抹布在洁净室环境中的作用与重要性

导言: 洁净室环境,特别是在制药、电子和生物技术等行业中,对清洁和卫生的要求极为严格。无尘抹布在维护这些环境的洁净和卫生方面起着至关重要的作用。本文将探讨无尘抹布的重要性以及在洁净室环境中的各种应用。 了解无尘抹布 定义和组成&a…

TensorBoard——Pytorch版使用(附带案例演示)

TensorBoard是一个用于可视化机器学习实验结果的工具,可以帮助我们更好地理解和调试训练过程中的模型。 在PyTorch中,我们可以使用TensorBoardX库来与TensorBoard进行交互。TensorBoardX是一个PyTorch的扩展,它允许我们将PyTorch的训练中的关…

基于Vue的兴趣活动推荐APP的设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术简介 3 1.1 框架 3 1.1.1 Spring MVC 3 1.1.2 Spring框架 3 1.1.3 MyBatis框架 3 1.1.4 VUE框架 3 1.2 开发语言 3 1.2.1 JAVA 3 1.2.2 JavaScript 4 1.3 设计模式 4 1.4 数据库 4 2 可行性分析 5 2.1 社会可行性 5 2.2 经济可行…

Extended Feature Pyramid Network for SmallObject Detection

摘要 各种尺度的特征耦合会削弱小对象的性能,本文中,我们提出了具有超高分辨率金字塔的扩展特征金字塔网络(EFPN ),专门用于小目标检测。具体来说,我们设计了一个新模块,称为特征纹理转移&#…

《Effective Modern C++》- 极精简版 5-14条

本文章属于专栏《业界Cpp进阶建议整理》 继续上篇《Effective Modern C》- 极精简版 1-4条。本文列出《Effective Modern C》的5-14条的个人理解的极精简版本。 Item5、优先考虑auto而非显示类型声明 auto的优势: 强制变量初始化在返回部分场景,会返回一…

释机器学习中的召回率、精确率、准确率

精确率和召回率又被叫做查准率和查全率,可以通过P-R图进行表示 如何理解P-R(精确率-召回率)曲线呢?或者说这些曲线是根据什么变化呢? 以逻辑回归举例,其输出值是0-1之间的数字。因此,如果我们想要判断用户的好坏&…

如何做好【沟通】管理

目录 管理的定义 管理的四大职能: 四共团队: 领导力: 沟通的四种类型听、说、读、写(计划、报告) 沟通四原则 思维框架:结构树报告 管理的定义 彼得.德鲁克:管理通过他人去完成任务的学…

基于java SSM图书管理系统简单版设计和实现

基于java SSM图书管理系统简单版设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系…

c++ 11 新特性 不同数据类型之间转换函数之const_cast

一.不同数据类型之间转换函数const_cast介绍 const_cast是C11中引入的一种类型转换操作符,用于修改类型的const或volatile属性。const_cast的主要用途是移除对象的常量性,它是唯一具有此能力的C风格的转型操作符。在C11中,const_cast可以完成…

Linux安装,配置,启动HBase

Linux安装,配置,启动HBase 一、HBase安装,配置 1、下载HBase安装包 Hbase官方下载地址: http://archive.apache.org/dist/hbase 选择相应的版本点击下载,这里以2.3.5为例 # linux可以通过wget命令下载 wget https://archive…

如何解决Firefox提示“此网站可能不支持TLS1.2协议”的问题 错误代码:SSL_ERROR_UNSUPPORTED_VERSION

1.问题描述 当你在Firefox浏览器中访问一个网站时,可能会遇到这样的提示:   之后,不停地刷新或 重新输入,怎么也访问不进去?? 2.解决步骤 按照以下步骤操作,可以降低Firefox对TLS版本的要求…