# api_base **Repository Path**: mathmost/api_base ## Basic Information - **Project Name**: api_base - **Description**: 基于pytest allure yaml实现接口自动化的base业务,可根据环境设置不同的参数,比如邮件通知、数据库以及redis的使用等 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 2 - **Created**: 2021-07-25 - **Last Updated**: 2025-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # api_base 基于 pytest allure yaml 实现接口自动化, 可根据环境设置不同的参数, 比如邮件通知、数据库以及 redis 的使用等 1. 根据不同环境自行修改 env_cof.py 文件的配置信息
2. 根据 env_cof.py 文件的 app 对象设置的环境加载配置信息结合 pytest 收集并执行用例
3. 后置通知采用 celery 异步任务, 任务脚本存放于 task.py, 安装步骤如下(个人操作)
pip install celery-with-redis
pip uninstall celery && pip uninstall redis
pip install celery && pip install redis
4. 本地安装 mysql 以及 redis
5. 启动 celery 异步任务
celery -A com.tasks worker --concurrency=1000 -P eventlet
ps: com.tasks 为当前任务脚本所在的目录 6. 以上都准备完成后运行:
1、python setting.py
2、右键 run setting.py
3、也可以单独命令行运行, 比如: pytest src\cases_client\xxx.py 7. jenkins + allure 以及项目部署自行解决 8. 增加客户的概念: 可以针对不同客户的环境等进行动态配置 9. 客户可以单独封装为文件, 在 constans.py 导入后效果是一致的 ps
1. 建议在 utils 下封装的脚本除必须条件都使用单例, 在 constans.py 的 case_data 类中添加该对象, 调用封装脚本, 只需要在用例中导入 case_data 实例
2. 可以在 utils 下封装微信、企业微信、钉钉等一系列后置通知或者封装其他公共处理的脚本
3. case_data 实例的全局变量、局部变量皆可以在整个项目中使用, 如果考虑需要写入文件做后续的预览或者其他项目的使用则在实体类中对应的 set()方法中添加写入文件代码
4. 重要
a. 该框架仅为 base
b. 接口放在 pages 目录下, 需要根据接口文档及业务自行添加接口
c. 用例放在 cases 目录下, 遵循 pytest.ini 自定义或者默认的文件、方法等命名规则
d. 测试数据以 yaml 形式或者单独封装为类, 需根据业务自行添加模块数据
5. 已经在 cases 用例目录提供了最基本的 login session result 变量池等 demo 的使用
6. 如果需要测试登录模块, 尽可能避免 env_cof.py 文件的登录信息与登录模块的用例数据冲突, 避免业务上导致 session 或者 token 过期