Python开发解析Swagger文档小工具

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。

写在前头我的项目地址,欢迎star,提出更多建议!

一、HTTPRUNNER开源项目

当前框架已经更新到3.x版本;已经向pytest测试框架靠拢,并继承它的相关特性及优点。
  • 但它的优点,在某些人眼里也是有‘缺陷’的
如:它支持抓包导出har数据文件har2case转化成json/yaml格式的测试套件;也支持手动编辑维护json/yaml格式的测试用例;
但是面对接口文档,比较多的接口需要做接口测试或集成方面又略显不足,人力的手工成本大、效率又不高,有没有办法提高呢?
故而开发与该框架契合比较高的解析接口文档工具,既支持json/yaml格式又可以输出excel文档,方便更灵活的开发测试框架。
  • 咱们先安装环境,然后再一步一步完成自己的需求
// 暂时不使用它3.x版本的功能
pip install -y httprunner==2.1.3
  • 验证环境:hrun -h ,等效于httprunner -h
    image.png

二、开发解析swagger脚本

  • 先安装环境所需要的python库
// 可以写入requirements.txt文件,批量安装:pip install -r requirements.txt
celery==3.1.26.post2
openpyxl==3.0.4
requests==2.24.0
xlwt==1.3.0
xlrd==1.2.0
PyYAML==5.4.1
  • 开发工具及工程结构

    • pycharm是python工程师的开发利器
    • 工程结构截图如下:
      微信截图_20210703105544.png
  • 请注意配置properties/目录下的config.ini配置文件,需要填写自己解析的接口文档地址
[swaggerUrl]
# swagger接口文档地址
baseSever_url = http://localhost:8090
例:自己部署一个swagger项目演示效果

三、跳过开发过程看效果演示

脚本设计思想:
1、既要符合httprunner框架支持的json/yaml用例,又要支持excel输出
2、这点思想主要来源于爬虫,爬取接口响应的数据进行解析重新组装输出
  • 进入脚本,执行程序入口
if __name__ == '__main__':
    url = conf.get_value("swaggerUrl", "baseSever_url")
    js = AnalysisSwaggerJson(url)
    js.analysis_json_data(isDuplicated=False)
    js.write_excel(url, handlefile.get_file_list(case_dir))
  • 结果输出如图所示
    微信截图_20210703111436.png

  • 既有json,同时又有excel文件,是不是两全其美之法?

先来完善api/目录下的测试用例:
  • 补全接口入参,如图所示
    微信截图_20210703113055.png

  • 进入工程swagger用例目录,执行:hrun testcases\用户相关接口.json,日志截图:
    image.png

  • 并且生成html测试报告,打开如图:
    image.png

  • 是不是非常nice

一边生成json/yaml符合httprunner测试框架;
一边生成excel可以自己定制开发自动化测试框架。

四、Swagger工具总结

  • 先推广一波httprunner_swagger小工具,已经有19个star了,还缺你哦;
  • 欢迎提出不同优化建议,如果再结合其他测试框架,做成一个强大第三方开源库,服务更多的人群,这该是一件美事!
相关文章
|
4天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
2天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
17 5
|
12天前
|
存储 API 数据库
使用Python开发获取商品销量详情API接口
本文介绍了使用Python开发获取商品销量详情的API接口方法,涵盖API接口概述、技术选型(Flask与FastAPI)、环境准备、API接口创建及调用淘宝开放平台API等内容。通过示例代码,详细说明了如何构建和调用API,以及开发过程中需要注意的事项,如数据库连接、API权限、错误处理、安全性和性能优化等。
58 5
|
16天前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
16天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
20天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
26 7
|
21天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
20天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
24天前
|
Java 测试技术 API
详解Swagger:Spring Boot中的API文档生成与测试工具
详解Swagger:Spring Boot中的API文档生成与测试工具
35 4
|
5月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
下一篇
DataWorks