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

swagger 接口测试,用 python 写自动化时该如何处理?

在使用Python进行Swagger接口测试时,可以使用requests库来发送HTTP请求,并使用json库和yaml库来处理响应数据。以下是一个简单的示例代码:

import requests
import json
import yaml# Swagger API文档地址和需要测试的接口路径
swagger_url = 'http://example.com/swagger.json'
api_path = '/api/users'# 获取Swagger API文档并解析
response = requests.get(swagger_url)
swagger_data = response.json()# 根据接口路径获取接口信息
path_info = swagger_data['paths'][api_path]# 获取需要用到的请求方法、请求参数、请求头等信息
method = path_info['get']['operationId']
parameters = path_info['get']['parameters']
headers = {'Content-Type': 'application/json'}# 构造请求URL和请求参数
url = 'http://example.com' + api_path
params = {}
for param in parameters:params[param['name']] = param['value']# 发送GET请求
response = requests.get(url, headers=headers, params=params)# 解析响应数据
if response.status_code == 200:# 如果响应数据为JSON格式,则使用json.loads()方法解析if 'application/json' in response.headers['Content-Type']:data = json.loads(response.text)# 如果响应数据为YAML格式,则使用yaml.safe_load()方法解析elif 'application/yaml' in response.headers['Content-Type']:data = yaml.safe_load(response.text)else:data = response.textprint('响应数据:', data)
else:print('请求失败')

在以上代码中,我们首先通过Swagger API文档地址获取接口信息,包括请求方法、请求参数和请求头等信息。然后使用requests.get()方法发送GET请求,并根据响应数据的格式使用不同的库对响应数据进行解析。

需要注意的是,在使用requests库发送请求时,需要根据接口文档中所指定的请求方法进行相应的设置。例如,如果接口文档中指定了POST请求方法,则需要使用requests.post()方法发送请求。

另外,在处理响应数据时,需要根据实际情况选择合适的解析方式。如果响应数据为JSON格式,则可以使用json.loads()方法解析;如果响应数据为YAML格式,则可以使用yaml.safe_load()方法解析。如果响应数据不是这两种格式,则直接使用response.text即可。

总之,在使用Python进行Swagger接口测试时,需要充分利用API文档信息,正确地构造请求和解析响应数据,并进行必要的异常处理。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

http://www.lryc.cn/news/152592.html

相关文章:

  • QT使用QXlsx实现Excel图片与图表操作 QT基础入门【Excel的操作】
  • 【Python常用函数】一文让你彻底掌握Python中的numpy.clip函数
  • Matlab(GUI程式设计)
  • Numpy数组(随时更新)
  • Spring Cloud--从零开始搭建微服务基础环境【三】
  • HDFS文件的读写流程
  • SpringCloudGateway集成SpringDoc
  • ArcGIS将两个相同范围但不同比例或位置的矢量数据移动到相同位置
  • MySQL编写建表语句,如何优雅处理创建时间与更新时间
  • NetSuite as OIDC Provider 演示
  • webrtc sdp各字段含义
  • Docker 常用服务 安装使用 教程
  • Java String类(2)
  • 基于图像切割计算轨迹相似度
  • Day49|leetcode 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
  • 【项目经验】:elementui表格中表头的多选框换成文字
  • 【LeetCode】剑指 Offer <二刷>(4)
  • CentOS7查看和关闭防火墙
  • LeetCode 无重复字符的最长子串 打败100%的人
  • Spring Boot中通过maven进行多环境配置
  • python自动化Selenium的使用
  • 大数据课程K13——Spark的距离度量相似度度量
  • Lambda表达式第四版
  • 自定义类加载器
  • 【Redis】Redis 的学习教程(七)之 SpringBoot 集成 Redis
  • Vlan和Trunk
  • java 批量下载将多个文件(minio中存储)压缩成一个zip包
  • nnUNet v2数据准备及格式转换 (二)
  • ant-vue1.78版监听a-modal遮罩层的滚动事件
  • MATLAB中residue函数用法