项目技术选型

原本想使用的httprunner3,鉴于其一个case就是一个py文件,仅个人短浅的见识觉得不是很方便(文件太多了岂不)。。又有测websocket接口的需求,于是乎想把它们整一起!所以打算自己搭一个练练手,主要是基于Pytest + Requests(Websocket) + Allure。

项目结构

  1. |-- common/
  2. |-- |-- sql_info.py # 数据库连接信息
  3. |-- |-- api_method .py # 封装requests库方法
  4. |-- |-- socket_method.py # 封装websocket库方法
  5. |-- |-- api_sql.py # mysql查询方法
  6. |-- |-- logger.py # 封装日志输出
  7. |-- |-- path.py # 目录路径
  8. |-- inferface_info/ # 接口url、请求参数定义
  9. |-- |-- coll/ # 协作相关(由接口一级路由命名)
  10. |-- cases # 测试用例集
  11. |-- |-- coll/ # 接口测试用例套件(由接口一级路由命名)
  12. |-- build_data.py # 生成测试数据
  13. |-- config.py # 接口环境、域名配置
  14. |-- allure_env.py # allure报告执行环境
  15. |-- conftest.py # 全局配置、接口数据提取
  16. |-- cookie.json # 保存cookie
  17. |-- cookie_value.json # 保存cookie的值
  18. |-- runtest.py # 用例执行、报告生成

框架介绍

  1. 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)。