使用 HttpRunner 默认生成的项目是这样的
命令:httprunner --startproject 项目名称
so,根据这个项目的目录结构,使用python解析swagger接口参数,可以快速生成api、testcases、testsuites文件夹中用到的json文件
运行后的目录是这样的
api目录
按swagger中的tags区分为多个文件夹,每个文件夹下包含各自的api文件
testcases目录
按swagger中的tags区分为不同的json文件,每个文件包含所有的api接口
testsuites目录
测试用例集,组织运行所有的测试用例
这样,接口测试框架的简易架子就有了。接下来,需要补充api接口文件数据
略
运行结果
HttpRunner自带的report
附lib目录下的代码
swagger.py
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/9/9 15:17 # @Author : lixiaofeng # @Site : # @File : swagger.py # @Software: PyCharm import os, requests from httprunner import logger from lib.processingJson import write_data, get_json class AnalysisJson: """swagger自动生成测试用例""" def __init__(self, url): self.url = url self.interface = {} self.case_list = [] self.tags_list = [] self.http_suite = { "config": { "name": "", "base_url": "", "variables": {}}, "testcases": []} self.http_testcase = { "name": "", "testcase": "", "variables": {}} def retrieve_data(self): """ 主函数 :return: """ try: r = requests.get(self.url + '/v2/api-docs?group=sign-api').json() write_data(r, 'data.json') # r = get_json('D:\HttpRunner_framework\\testcases\data.json') except Exception as e: logger.log_error('请求swagger url 发生错误. 详情原因: {}'.format(e)) return 'error' self.data = r['paths'] # 接口数据 self.url = 'https://' + r['host'] self.title = r['info']['title'] self.http_suite['config']['name'] = self.title self.http_suite['config']['base_url'] = self.url self.definitions = r['definitions'] # body参数 for tag_dict in r['tags']: self.tags_list.append(tag_dict['name']) i = 0 for</