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.text
    print('响应数据:', data)
else:
    print('请求失败')

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

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

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

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

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FasterRunner - [X] 支持同步YAPI(Swagger,Postman),无需手动录入接口 - [X] 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求 - [X] 借助驱动代码(debugtalk.py),在测试脚本中轻松实现请求参数签名,加密和解密响应等 - [X] 支持完善的 hook 机制,通过请求前置和后置函数,完美解决单接口的token依赖和多个接口的参数传递 - [X] 类crontab的定任务, 无需额外学习成本 - [X] 测试用例支持参数化和数据驱动机制 - [X] Gitlab-CI, Jenkins 等持续集成工具完美结合 - [X] 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录 - [X] 测试报告推送飞书,钉钉,企业微信等 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值