项目技术选型
原本想使用的httprunner3,鉴于其一个case就是一个py文件,仅个人短浅的见识觉得不是很方便(文件太多了岂不)。。又有测websocket接口的需求,于是乎想把它们整一起!所以打算自己搭一个练练手,主要是基于Pytest + Requests(Websocket) + Allure。
项目结构
|-- common/
|-- |-- sql_info.py # 数据库连接信息
|-- |-- api_method .py # 封装requests库方法
|-- |-- socket_method.py # 封装websocket库方法
|-- |-- api_sql.py # mysql查询方法
|-- |-- logger.py # 封装日志输出
|-- |-- path.py # 目录路径
|-- inferface_info/ # 接口url、请求参数定义
|-- |-- coll/ # 协作相关(由接口一级路由命名)
|-- cases # 测试用例集
|-- |-- coll/ # 接口测试用例套件(由接口一级路由命名)
|-- build_data.py # 生成测试数据
|-- config.py # 接口环境、域名配置
|-- allure_env.py # allure报告执行环境
|-- conftest.py # 全局配置、接口数据提取
|-- cookie.json # 保存cookie
|-- cookie_value.json # 保存cookie的值
|-- runtest.py # 用例执行、报告生成
框架介绍
demo地址:<br />**关于方法封装**:<br />主要是封装Requests库(_api_method .py_)和Websocket库(_socket_method.py_), 断言采用jsonpath提取参数校验,对于必要的查询校验会核对数据库(_api_sql.py_)。详细见[公共方法封装](https://www.yuque.com/zaygee/gd2ge7/td2x3s)。<br />**关于用例组织**:<br />这里我们测试一个接口有两个文件。一个是接口定义、一个测试用例集, 详细见[用例组织&用例设计](https://www.yuque.com/zaygee/gd2ge7/ycmreb)。<br />**关于测试数据**:<br />一切测试数据皆是通过业务场景调用接口产生,详细见[数据共享](https://www.yuque.com/zaygee/gd2ge7/tykzfp)<br />**关于用例执行**:<br />实现各个环境切换,一套脚本只要调通了,基本接口没有变动,可以大大的降低测试成本,详细见[用例执行](https://www.yuque.com/zaygee/gd2ge7/cry3gb)。