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

news/2024/11/22 17:06:03/

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

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站百万播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取

B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibiliB站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

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文档信息,正确地构造请求和解析响应数据,并进行必要的异常处理。


http://www.ppmy.cn/news/283233.html

相关文章

18.4:打印一个字符串的全部排列

打印一个字符串的全部排列 方法一&#xff1a;暴力方法。 //方法一&#xff1a;暴力方法。public static List<String> permutation1(String s) {//str是一个存储字符类型的有序表。ArrayList<Character> str new ArrayList<>();//将字符串中的类型存储在s…

20分钟搞定 Stable Diffusion 模型在线服务部署

文章目录 AIGC之 AI 绘画20分钟搞定 Stable Diffusion 模型在线服务部署认识 Amazon SageMaker借助 Amazon SageMaker 进行环境搭建和模型推理1. 创建 jupyter notebook 运行环境2. 一键运行所有代码 关键代码分析如下1. 环境准备&#xff0c;代码模型下载2. 在Notebook中配置并…

达芬奇的密码

写在前面郇山隐修会是一个确实存在的组织&#xff0c;是一个成立于1099年的欧洲秘密社团。1975年巴黎国家图书馆发现了被称作“秘密卷宗”的羊皮纸文献&#xff0c;才知道包括艾撒克。牛顿爵士、波提切利、维克多。雨果和列昂纳多。达。芬奇等众多人物均为郇山隐修会成员。人们…

爱情日记(2005年4月)

2005.3.31 晚饭时间&#xff0c;我和老公进行雷打不动的步骤&#xff1a;感谢并亲吻对方&#xff1a;&#xff09; 刚结婚时因为总是老公做饭&#xff0c;我觉得惭愧&#xff0c;于是在摆好碗筷之后我会说&#xff1a; “谢谢老公&#xff01;”然后吻他一下&#xff0c;才开始…

15篇文章贯通4级词汇

星火贯通CET-4四级词汇系列之一 A question of rights一项权力问题Unfortunately, a crime was about to committed but at that moment Lesley was unaware of the impending event, which would affect her life so drastically for the next two years.一项犯罪就要得逞了。…

驭势吴甘沙:我的根本利益|Xtecher人物特稿

吴甘沙&#xff0c;驭势科技CEO。前英特尔中国研究院院长。英特尔中国研究院的第一位“首席工程师”&#xff0c;第一位非美籍华人院长。 为了写这篇文章&#xff0c;我找来3月20日驭势科技的公众号发刊文《驭势未来》。读得人热气往上顶&#xff0c;颇有狄更斯《双城记》的笔锋…

从AI上天到星际逃亡:人工智能如何影响宇宙探索?

在《三体死神永生》中&#xff0c;人类为了监视三体人&#xff0c;用核力量把云天明的大脑发射到了太空当中&#xff0c;认为三体人会因此拦截下来&#xff0c;然后带回三体星球。这样&#xff0c;云天明的大脑就能监视三体人的一举一动。 结果火箭发射出现意外&#xff0c;云天…

黑客入侵16进制密码_密码与密码黑客如何诱骗您入侵您的详细信息

黑客入侵16进制密码 Time to read — 5 to 15 minutes. 阅读时间-5至15分钟。 1.密码与密码 (1. Assword vs Password) ASSWORD vs PASSWORD (The only difference is ‘P’). Your PASSWORD could have been better & protected by ‘P’. But due to missing ‘P,’ you…