---整体更新一波---
1.实际工作中,因为要动手输入的地方比较多,自动生成的异常接口用例感觉用处不大,就先去掉了,只保留了正常的;
2.接口有改动的,如果开发人员没有及时告知或没有详细告知,会增加一些不必要的麻烦,所以增加了文件对比功能;
目录:
![](https://i-blog.csdnimg.cn/blog_migrate/79afff492bf658b141ab829140ba5063.png)
case_generate.py
import sys sys.path.append('D:\Interface_framework_Beauty') import requests import os from common.operation_excel import Write_excel # 写入excel模块 from common.logger import Log # 打印日志模块 from common.processing_json import write_data # 写入json文件模块 from common.difference import diff_excel, diff_json from common import read_config title_list = [] old_excel_path = os.path.abspath( os.path.dirname(os.path.dirname(__file__))) + '\\case_generate' + '\\data_old' + '\\demo_api.xlsx' excel_path = os.path.abspath( os.path.dirname( os.path.dirname(__file__))) + '\\case_generate' + '\\data_new' + '\\demo_api.xlsx' # case path old_json_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '\\case_generate' + '\\data_old' json_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + '\\case_generate' + '\\data_new' class AnalysisJson: """swagger自动生成测试用例""" def __init__(self, url_json): self.url_json = url_json r = requests.get(self.url_json + '/v2/api-docs?group=sign-api').json() self.title = r['info']['description'] write_data(r, '{}.json'.format(self.title)) self.interface_params = {} self.log = Log() self.row = 2 # 写入excel起始行数 self.num = 1 # case id global title_list, json_path if self.check_data(r): self.json_path = os.path.abspath( os.path.dirname( os.path.dirname(__file__))) + '\\case_generate' + '\\data_new' + '\\{}_data.json'.format( self.title) # json file path,执行多个url的情况,区分生成的json文件 self.data = r['paths'] # paths中的数据是有用的 title_list.append(self.title) def check_data(self, r): """检查返回的数据是否是dict""" if not isinstance(r, dict): self.log.info('swagger return json error.') return False else: return True def retrieve_data(self): """主函数""" global body_name, method for k, v in self.data.items(): method_list = [] for _k, _v in v.items(): interface = {} if not _v['deprecated']: # 接口是否被弃用 method_list.append(_k) api = k # api地址 if len(method_list) > 1: # api地址下的请求方式不止一个的情况