# httprunner_swagger **Repository Path**: test-dev-qa/httprunner_swagger ## Basic Information - **Project Name**: httprunner_swagger - **Description**: http runner-swagger - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-27 - **Last Updated**: 2024-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README @[toc] 使用手册请参考最后说明! @[author] wx:oupoor @[swagger] 仅支持swagger2.0版本,3.0部分数据存在解析错误 #### 使用说明 ``` 该开源项目使用python3解析swagger2.x版本的接口文档,可生成格式为:JSON、YAML、CVS、XLSX的数据文件。为接口自动化测试提供的自动生成用例解决方案, 并适用于HTTPRUNNER2.x版本的接口自动化测试框架;可针对任何测试套件或单个api的接口测试用例进行调用,可以快速实现企业级接口自动化测试解决方案。 默认生成json格式的数据文件,框架支持切换到yaml格式,写入excel文件,并支持转换为csv格式的数据文件,csv文件还支持jmeter数据驱动接口自动化测试解决方案。 ``` - 本地安装python开发环境 - 克隆项目到本地:git clone - 安装项目依赖:pip install -r requirements.txt - 因为项目中swagger.py脚本已经引用了`dirConfig`工程结构,会先创建对应的目录 - 确认config.ini配置文件需要解析的接口文档地址 - 执行程序入口在swagger脚本main代码块,也可以使用单独抽取出来放在项目根路径 - SwaggerTestSuites生成json格式数据是给httprunnermanager这个项目批量导入接口使用的 #### 项目结构说明: - logs:存放脚本执行日志 - properties:存放配置信息 - swagger:存放生成json测试用例文件 - swaggerLib:解析swagger接口文档脚本,包含一个testsuite脚本生成的用例格式可与httprunnermanager批量导入有效 - utils:封装工具包 - common: - - dir_config.py:为项目拼接路径配置模块 #### 背景介绍 ``` 鉴于大多数互联网公司均采用java作为后台开发语言,且习惯使用Swagger插件生成接口文档; 本项目的开发,是为解决测试人员依赖swagger接口文档做接口测试需要cv/cp的重复手工劳动。 ``` #### 项目需求 - 为什么要做接口测试? ``` 受自动化测试分层思想影响:UI自动化投入/维护成本高且收益甚微, 而当下测试人员编码能力有限,那么中间层的接口测试战略位置尤为重要; 1、更快实现接口自动化测试,更早加入持续集成; 2、通过定制触发器实时监控生产应用服务健康状况; 3、后端服务的性能测试更是需要掌握接口测试的基础。 ``` - 如何开展接口测试? ``` 首先需要了解主流接口协议,如http,明白接口组成以及请求和响应过程; 再者需要知道接口测试的业务范围,前端的功能测试与之并不是重复工作; 最后需要清楚业务规则及接口的业务逻辑实现,才能更好的服务接口测试。 ``` - 如何才能减去反复的手工活动? > 做接口测试时,需要组装接口url及入参,对着接口文档和接口测试工具无限制的ctrl+c / ctrl+v? ``` 首推自动化测试技术! 推荐接口测试工具:jmeter/httprunner/postman/rf,不排除其他框架,它们都能向往着DDT的方向发展; 接口测试工具原理:都是通过脚本/工具实现模拟客户端向服务端发起请求,然后校验服务器返回数据的过程。 ``` #### 实现一 ``` python编写脚本对swagger2.x接口文档返回的josn数据对象进行解析,提取接口信息, 按规则写入excel组成测试用例,支持excel转成csv结合jmeter实现DDT接口自动化测试; 2021-08-05,使用pandas模块将生成xlsx用例文件转成csv文件 ``` #### 实现二 ``` 引入httprunner<2.x>框架,同样是通过解析swagger2.x接口文档生成的json格式的数据文件; <亦可通过charles抓包工具导出har文件,再通过har2case转换json测试用例>,可以直接通过CLI执行; ``` `本项目不包含httprunner框架,需要用户自己安装:pip install httprunner==2.4.3` #### 实现三 ``` 既然已知swagger接口文档并且能解析数据形成excel或者json格式的测试用例, 那么也可以结合python/java等开发语言集合单元测试框架搭建自动化测试框架。 ``` #### 最后 欢迎各位大佬使用并提出改善意见,十分感谢!