项目技术选型
原本想使用的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地址:
关于方法封装:主要是封装Requests库(api_method .py)和Websocket库(socket_method.py),断言采用jsonpath提取参数校验,对于必要的查询校验会核对数据库(api_sql.py)。
关于用例组织:这里我们测试一个接口有两个文件。一个是接口定义、一个测试用例集。
关于测试数据:一切测试数据皆是通过业务场景调用接口产生。
关于用例执行:实现各个环境切换,一套脚本只要调通了,基本接口没有变动,可以大大的降低测试成本。