Skip to content

本框架是基于 Python+Pytest+yaml+json+mysql+log+allure 实现的接口自动化测试框架

Notifications You must be signed in to change notification settings

xuefengji/py-api-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py-api-automation

框架介绍

本框架是基于 Python+Pytest+yaml+mysql+log+allure 实现的接口自动化测试框架。

为什么要做接口自动化测试

  • 容易实现并且持续集成
  • 相比 UI 自动化测试性价比更高,更稳定,可大量回归
  • 对于大型项目,系统之间的模块越来越多,非常复杂
  • 更安全的接口测试方法

实现功能

已实现

  • 测试数据隔离, 实现数据驱动
  • 日志模块: 打印每个接口的日志信息,同样订制了开关,可以决定是否需要打印日志
  • 缓存数据(如用例和依赖数据)的切换:本地存储或 Redis 存储
  • 钉钉、邮箱通知
  • 自定义拓展字段: 如用例中需要生成的随机数据,可直接调用

当前计划

  • 支持多接口数据依赖: 如 A 接口需要同时依赖 B、C 接口的响应数据作为参数
  • 数据库断言: 直接在测试用例中写入查询的 SQL 即可断言,无需编写代码
  • 动态多断言: 如接口需要同时校验响应数据和 SQL 校验,支持多场景断言
  • 为了优化代码以便于后期的功能扩展,当前正在进行项目重构...

未来计划

  • 自动生成用例代码: 测试人员在 yaml 文件中填写好测试用例, 程序可以直接生成用例代码,纯小白也能使用
  • 代理录制: 支持代理录制,生成 yaml 格式的测试用例
  • 统计接口的运行时长: 拓展功能,订制开关,可以决定是否需要使用
  • 支持更多种通知场景,比如企业微信、短信通知或其它第三方通知接口
  • 多线程执行

目录结构

├── common/                        # 主要的接口测试逻辑
│   ├── asserts/                   # 断言
│   ├── request/                   # 请求、依赖相关
│   ├── ... 
├── config/                        # 配置相关
├── datas/                         # yaml 用例
├── test_cases/                    # 测试用例
├── logs/                          # 日志输出
├── reports/                       # 测试报告输出
├── utils/                         # 工具类
│   └── caches/                    # 缓存      
│   └── data/                      # 数据校验相关 
│   └── database/                  # 数据库连接
│   └── file/                      # 用例解析
│   └── log/                       # logging 模块相关
│   └── notify/                    # 用户通知
│   └── random/                    # 模拟数据(仅开发用)
│   └── report/                    # 测试报告相关
├── main.py                        # 项目入口
├── ...

依赖库

requirements.txt

用例相关字段介绍

About

本框架是基于 Python+Pytest+yaml+json+mysql+log+allure 实现的接口自动化测试框架

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages