写在前头我的项目地址,欢迎star,提出更多建议!
一、HTTPRUNNER开源项目
当前框架已经更新到3.x版本;已经向pytest测试框架靠拢,并继承它的相关特性及优点。
- 但它的优点,在某些人眼里也是有‘缺陷’的
如:它支持抓包导出har数据文件har2case转化成json/yaml格式的测试套件;也支持手动编辑维护json/yaml格式的测试用例;
但是面对接口文档,比较多的接口需要做接口测试或集成方面又略显不足,人力的手工成本大、效率又不高,有没有办法提高呢?
故而开发与该框架契合比较高的解析接口文档工具,既支持json/yaml格式又可以输出excel文档,方便更灵活的开发测试框架。
- 咱们先安装环境,然后再一步一步完成自己的需求
// 暂时不使用它3.x版本的功能
pip install -y httprunner==2.1.3
- 验证环境:hrun -h ,等效于httprunner -h
二、开发解析swagger脚本
- 先安装环境所需要的python库
// 可以写入requirements.txt文件,批量安装:pip install -r requirements.txt
celery==3.1.26.post2
openpyxl==3.0.4
requests==2.24.0
xlwt==1.3.0
xlrd==1.2.0
PyYAML==5.4.1
开发工具及工程结构
-
- pycharm是python工程师的开发利器
-
- 工程结构截图如下:
- 工程结构截图如下:
- 请注意配置properties/目录下的config.ini配置文件,需要填写自己解析的接口文档地址
[swaggerUrl]
# swagger接口文档地址
baseSever_url = http://localhost:8090
例:自己部署一个swagger项目演示效果
效果如下:
但是我们要的不是UI,而是接口,于是F12一开
-
- 拿到接口地址并写入config.ini配置文件:http://localhost:8090/v2/api-docs
三、跳过开发过程看效果演示
脚本设计思想:
1、既要符合httprunner框架支持的json/yaml用例,又要支持excel输出
2、这点思想主要来源于爬虫,爬取接口响应的数据进行解析重新组装输出
- 进入脚本,执行程序入口
if __name__ == '__main__':
url = conf.get_value("swaggerUrl", "baseSever_url")
js = AnalysisSwaggerJson(url)
js.analysis_json_data(isDuplicated=False)
js.write_excel(url, handlefile.get_file_list(case_dir))
结果输出如图所示
既有json,同时又有excel文件,是不是两全其美之法?
先来完善api/目录下的测试用例:
补全接口入参,如图所示
进入工程swagger用例目录,执行:hrun testcases\用户相关接口.json,日志截图:
并且生成html测试报告,打开如图:
是不是非常nice
一边生成json/yaml符合httprunner测试框架;
一边生成excel可以自己定制开发自动化测试框架。
四、Swagger工具总结
- 先推广一波httprunner_swagger小工具,已经有19个star了,还缺你哦;
- 欢迎提出不同优化建议,如果再结合其他测试框架,做成一个强大第三方开源库,服务更多的人群,这该是一件美事!