將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')     # 保存文件

  運行結果:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM