Skip to main content

A sample project for pytest

Project description

probeX 测试平台

Python FastAPI Dash License

📖 项目简介

probeX 是一个功能完整的测试自动化平台,集成了测试框架、Web 管理界面和云原生支持。该平台提供了从测试用例管理到执行、报告生成的全流程解决方案,适用于企业级的测试自动化需求。

✨ 主要特性

🧪 测试框架

  • Swagger 自动解析: 支持 Swagger 2.0 文档自动解析和 API 测试
  • Kubernetes 集成: 支持 K8s 集群资源管理和容器化测试
  • 依赖关系管理: 支持测试用例间的依赖关系管理
  • 测试报告: 自动生成详细的测试报告和可视化展示

🌐 Web 管理界面

  • 用户权限管理: 完整的用户、角色、权限管理体系
  • 系统管理: 菜单、部门、字典等基础数据管理
  • 实时监控: 缓存、任务、日志、在线用户实时监控
  • 测试管理: 测试用例的可视化管理和执行

🚀 云原生支持

  • 容器化部署: 支持 Docker 和 Kubernetes 部署
  • 微服务架构: 前后端分离的微服务架构设计
  • 高可用性: 支持集群部署和负载均衡

🏗️ 系统架构

probeX/
├── src/probeX/
│   ├── framework/           # 核心测试框架
│   │   ├── api/            # API 管理
│   │   ├── client/         # 客户端支持 (HTTP/K8s/MySQL)
│   │   ├── config/         # 配置管理
│   │   ├── service/        # 核心业务服务
│   │   ├── schedule/       # 测试调度系统
│   │   └── utils/          # 工具类
│   ├── probeX-backend/     # FastAPI 后端服务
│   │   ├── module_admin/   # 管理模块
│   │   ├── module_task/    # 任务模块
│   │   └── middlewares/    # 中间件
│   └── probeX-frontend/    # Dash 前端界面
│       ├── views/          # 页面视图
│       ├── callbacks/      # 回调函数
│       └── components/     # 可复用组件

🛠️ 技术栈

后端技术

  • FastAPI: 高性能的 Python Web 框架
  • SQLAlchemy: ORM 数据库操作
  • Redis: 缓存和会话存储
  • MySQL: 主数据库
  • Uvicorn: ASGI 服务器

前端技术

  • Dash: Python Web 应用框架
  • Ant Design: 企业级 UI 组件库
  • Plotly: 数据可视化
  • JavaScript: 前端交互逻辑

测试框架

  • 自研测试框架: 支持依赖关系的测试用例管理
  • Swagger 集成: API 测试自动化
  • Kubernetes 客户端: 云原生测试支持

📦 安装部署

环境要求

  • Python 3.8+
  • MySQL 5.7+
  • Redis 6.0+
  • Kubernetes 1.20+ (可选)

快速开始

  1. 克隆项目
git clone https://github.com/your-username/probeX.git
cd probeX
  1. 安装依赖
pip install -r requirements.txt
  1. 配置数据库
# 创建数据库
mysql -u root -p < src/probeX/probeX-backend/sql/dash-fastapi.sql
  1. 启动服务
# 启动后端服务
cd src/probeX/probeX-backend
python app.py

# 启动前端服务
cd src/probeX/probeX-frontend
python app.py

Docker 部署

# 构建镜像
docker build -t probex .

# 运行容器
docker run -d -p 8000:8000 -p 8050:8050 probex

🚀 使用指南

命令行工具

probeX 提供了丰富的命令行工具:

# 生成 OTP 密钥
probeX user otp -f qrcode.png

# 解析 Swagger 文档
probeX swagger parse

# 查询 Kubernetes 资源
probeX kube resource

# 执行测试用例
probeX case -f test_config.yaml

# 管理报告服务
probeX report server start
probeX report server stop
probeX report server status

Web 界面使用

  1. 访问系统: 打开浏览器访问 http://localhost:8050
  2. 用户登录: 使用管理员账号登录系统
  3. 功能导航: 通过左侧菜单访问各项功能
  4. 测试管理: 在测试管理模块创建和执行测试用例

📋 功能模块

测试框架功能

  • ✅ Swagger 2.0 文档解析
  • ✅ API 接口测试
  • ✅ Kubernetes 资源管理
  • ✅ 测试用例依赖管理
  • ✅ 测试报告生成

系统管理功能

  • ✅ 用户权限管理
  • ✅ 角色权限分配
  • ✅ 菜单权限控制
  • ✅ 部门组织管理
  • ✅ 系统配置管理

监控功能

  • ✅ 缓存监控
  • ✅ 任务调度监控
  • ✅ 操作日志监控
  • ✅ 在线用户监控
  • ✅ 服务器状态监控

🔧 配置说明

环境变量配置

创建 .env 文件:

# 数据库配置
DATABASE_URL=mysql://user:password@localhost/probex
REDIS_URL=redis://localhost:6379

# 应用配置
APP_HOST=0.0.0.0
APP_PORT=8000
DEBUG=True

# Kubernetes 配置
KUBE_CONFIG_PATH=/path/to/kubeconfig

测试配置

config.yaml 中配置测试用例:

cases:
  - name: test1
    action: Model.create
    params:
      - modelname: "test"
      - modeltype: "NLP"
    return:
      - model_res
      - model_path
    dependencies: [test2, test3]

🤝 贡献指南

我们欢迎所有形式的贡献!

开发环境设置

  1. Fork 本仓库
  2. 创建功能分支: git checkout -b feature/AmazingFeature
  3. 提交更改: git commit -m 'Add some AmazingFeature'
  4. 推送分支: git push origin feature/AmazingFeature
  5. 创建 Pull Request

代码规范

  • 遵循 PEP 8 Python 代码规范
  • 使用类型注解
  • 编写单元测试
  • 更新相关文档

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📞 联系我们

🙏 致谢

感谢所有为这个项目做出贡献的开发者和用户!


⭐ 如果这个项目对您有帮助,请给我们一个星标!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

probex-0.1.3rc0.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

probex-0.1.3rc0-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

File details

Details for the file probex-0.1.3rc0.tar.gz.

File metadata

  • Download URL: probex-0.1.3rc0.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for probex-0.1.3rc0.tar.gz
Algorithm Hash digest
SHA256 6775139944531cc96092129bf7456c357525333ac51c57fe59c58314e1665045
MD5 4f98121ae949a85b899ce879ce4741fc
BLAKE2b-256 a95753004305560c4c175a922f17d15fd6a583220a2a7ca1bfe511df32902bb3

See more details on using hashes here.

File details

Details for the file probex-0.1.3rc0-py3-none-any.whl.

File metadata

  • Download URL: probex-0.1.3rc0-py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for probex-0.1.3rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 90e488565635d243ec3009db75f5cd3412d2159c878f1e56a30a4beab2084358
MD5 4db4eddec9f861fc103fca4b559f3405
BLAKE2b-256 bda1b2044fbfd5872e6b99d60852e65d37a0b90f9fe67eb058edc2ce782b8940

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page