将Swagger中所有接口地址用Python写入Excel中

Posted 童薰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Swagger中所有接口地址用Python写入Excel中相关的知识,希望对你有一定的参考价值。

  我们公司所有接口文档放在swagger中,我一直在想办法把所有接口地址给弄下来放到Excel中,方便jmeter循环跑接口时配置CSV文件使用,经过几天的研究,终于解决了该问题,再也不用一个一个去复制下来了。

  1.首先将swagger保存为文档

  

 

   点击左上角IP地址,会出现json文档,右键另存为,可以保存为.json格式的文档,保存修改文档后缀为txt;

  

 

   2.解析json,分析你要取接口地址的内容所在位置,找到提取数据的方式

  随便找个json解析工具,通过解析我发现所有接口信息都放在paths这个key里面,每个接口地址为一个子key,如下图:

  

 

   3.使用Python脚本提取数据并写入Excel中

  我负责的模块接口共有910个,比较多,为了将来使用方便,除接口地址外,顺便提取了请求方式,接口分类,接口描述,方便以后在Excel表格中分类整理取想要的接口;Python脚本如下:

   

 import json
import xlwt

api_excel = xlwt.Workbook(encoding=\'utf-8\')  # 创建一个文档
api_sheet = api_excel.add_sheet(\'CRM接口\')    # 添加一个sheet
json_file = open(\'D:/Test/api-docs.txt\', encoding=\'utf-8\')  # 打开保存的swagger文本文档
api_data = json.load(json_file)     # 将文档json内容转换为Python对象
api = api_data[\'paths\']  # 取swagger文件内容中的path,文件中path是键名
path_list = []  # 创建接口地址空列表
method_list = []  # 创建请求方式空列表
tags_list = []  # 创建接口分类空列表
summary_list = []  # 创建接口描述空列表
for path in api.keys():  # 循环取key
    values = api[path]  # 根据key获取值
    method = tuple(values.keys())[0]  # 获取请求方式,文件中请求方式是key
    path_list.append(path)  # 将path写入接口地址列表中
    method_list.append(method)  # 将method写入请求方式列表中
    if method == \'get\':  # key为get时从get里面取分类和描述,key为post时从post里面取分类和描述
        tags = values[\'get\'][\'tags\'][0]  # 获取接口分类
        summary = values[\'get\'][\'summary\']  # 获取接口描述
        tags_list.append(tags)  # 将接口分类写入列表中
        summary_list.append(summary)  # 将接口描述写入列表中
    if method == \'post\':
        tags = values[\'post\'][\'tags\'][0]
        summary = values[\'post\'][\'summary\']
        tags_list.append(tags)
        summary_list.append(summary)
for i in range(len(path_list)):  # 将接口path循环写入第一列
    api_sheet.write(i, 0, path_list[i])
for j in range(len(method_list)):  # 将请求方式循环写入第二列
    api_sheet.write(j, 1, method_list[j])
for m in range(len(tags_list)):  # 将接口分类循环写入第三列
    api_sheet.write(m, 2, tags_list[m])
for n in range(len(summary_list)):  # 将接口描述循环写入第四列
    api_sheet.write(n, 3, summary_list[n])
api_excel.save(\'D:\\\\Test\\\\CRM接口列表.xls\')     # 保存文件

  运行结果:

  

 

SpringBoot整合Swagger,方便后端测试

参考技术A 用Swagger能够在后端写好接口后进行测试,测试过程非常方便。

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。

Swagger 官网地址:https://swagger.io/

从上述 Swagger 定义我们不难看出 Swagger 有以下 3 个重要的作用:

swagger2是:http://localhost:8080/swagger-ui.html

swagger3是:http://localhost:8080/swagger-ui/index.html

注意观察:swagger2的注解基本都是以API开头的,以此来判断注解是否为swagger2注解。同样,swagger3也有类似特性。

swagger2必须要引入springfox-swagger2、springfox-swagger-ui这两个依赖

lombok插件要引入lombok依赖

这样swagger就配置完成了,接下来是使用方式

在entity实体类上使用

在controller实体类上使用

访问地址

http://localhost:8080/swagger-ui.html

图示

输入内容后,点击try it out ,即可得到结果

swagger2使用起来非常方便,引入依赖,创建一个配置类就能直接用了,用postman还得手动创建每个访问链接,非常麻烦,swagger2算是挺方便了。

它与swagger2的差异在于

配置文件上添加的注解是@EnableOpenApi而swagger2是@EnableSwagger2 访问地址http://localhost:8080/swagger-ui/index.html 而swagger2是http://localhost:8080/swagger-ui.html pom引入的文件只有一个 springfox-boot-starter 而swagger2有两个springfox-swagger2 springfox-swagger-ui

entity实体类

和swagger2对比没有变化

controller

appication.properties

访问网址:http://localhost:8080/swagger-ui/index.html

可以看到,ui变大变好看了点

以上是关于将Swagger中所有接口地址用Python写入Excel中的主要内容,如果未能解决你的问题,请参考以下文章

WebApi 文档Swagger

python实现处理swagger接口文档,转换为yaml格式的自动化用例

python实现处理swagger接口文档,转换为yaml格式的自动化用例

python实现处理swagger接口文档,转换为yaml格式的自动化用例

swagger 自动生成接口测试用例

yapi导入swagger接口