基于交互模式的现代化测试自动化框架,支持多种测试场景
Project description
DF Test Framework
简单、强大、可扩展的现代化 Python 测试自动化框架
核心特性
- HTTP 客户端 - 同步/异步,拦截器链,自动重试
- GraphQL/gRPC 客户端 - 完整协议支持
- 数据库访问 - SQLAlchemy 2.0,Repository + UnitOfWork 模式
- 消息队列 - Kafka/RabbitMQ/RocketMQ 统一接口
- 存储客户端 - LocalFile/S3/阿里云 OSS
- 可观测性 - OpenTelemetry 追踪 + Prometheus 监控
- 测试工具 - Fixtures、数据构建器、Mock 工具、Allure 集成
安装
# 基础安装
pip install df-test-framework
# 可选依赖
pip install df-test-framework[ui] # UI 测试(Playwright)
pip install df-test-framework[mq] # 消息队列
pip install df-test-framework[observability] # 可观测性
pip install df-test-framework[storage] # 存储客户端
pip install df-test-framework[all] # 所有功能
快速开始
脚手架创建项目
df-test init my-test-project
cd my-test-project
cp .env.example .env
pytest -v
手动使用
from df_test_framework import Bootstrap, FrameworkSettings
from pydantic import Field
class DemoSettings(FrameworkSettings):
api_base_url: str = Field(default="https://api.example.com")
runtime = (
Bootstrap()
.with_settings(DemoSettings)
.build()
.run()
)
http = runtime.http_client()
response = http.get("/users/1")
assert response.status_code == 200
异步高性能模式
import asyncio
from df_test_framework import AsyncHttpClient
async def test_concurrent():
async with AsyncHttpClient("https://api.example.com") as client:
tasks = [client.get(f"/users/{i}") for i in range(100)]
responses = await asyncio.gather(*tasks)
assert len(responses) == 100
asyncio.run(test_concurrent())
架构
Layer 4 ─ extensions/ # Pluggy 扩展系统
Layer 3 ─ testing/ # Fixtures、数据构建、插件
Layer 2 ─ infrastructure/ # Bootstrap、配置、日志、Runtime
Layer 1 ─ clients/… # HTTP、数据库、消息、存储
Layer 0 ─ common/ # 异常与基础类型
文档
完整文档请访问 GitHub 仓库:
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file df_test_framework-3.46.2.tar.gz.
File metadata
- Download URL: df_test_framework-3.46.2.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fba5721bfe336049052708055a4f33cd6e2cf5f2603e494c9df9511e071487f
|
|
| MD5 |
0498430fd3d261a1e6465a6374ac2074
|
|
| BLAKE2b-256 |
7d95116feedff75a2b2f3629e370cc2d35a6dec6060e10bf8f548d056d776598
|
File details
Details for the file df_test_framework-3.46.2-py3-none-any.whl.
File metadata
- Download URL: df_test_framework-3.46.2-py3-none-any.whl
- Upload date:
- Size: 645.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cec658d4387a38cfdccfb95b6aa1d09af4920872b6e0f44f0fd0e89195cb807
|
|
| MD5 |
72f98374620a199028b4a74a446aff32
|
|
| BLAKE2b-256 |
83a7550eb1e9a2c905667e03363a13b67175b283c61a8930dbf619e66f5bbca6
|