Metadata-Version: 2.4
Name: apitestgen
Version: 2.0.0
Summary: API 测试数据自动生成工具 - 从 JSON Schema / OpenAPI 生成正向和负向测试用例
Author-email: apitestgen <admin@apitestgen.dev>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jsonschema>=4.0
Requires-Dist: faker>=20.0
Requires-Dist: rstr>=3.0
Provides-Extra: yaml
Requires-Dist: PyYAML>=6.0; extra == "yaml"
Provides-Extra: all
Requires-Dist: PyYAML>=6.0; extra == "all"
Dynamic: license-file

﻿# ApiTestGen

API 测试数据自动生成工具 - 从 JSON Schema / OpenAPI 生成正向和负向测试用例。

## 功能特性

- 从 JSON Schema 自动生成正向测试数据
- 从 OpenAPI 规范自动生成测试数据
- 生成多场景测试用例（展开布尔值、枚举、逻辑分支）
- 自动生成负向测试用例（类型错误、约束违反、边界值等）
- 数据校验功能
- 支持标签过滤（F1-F7 负向用例分类）

## 安装

```bash
pip install apitestgen
```

## 快速开始

### Python API

```python
from apitestgen import generate, generate_negative, generates, validate

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string", "minLength": 2},
        "email": {"type": "string", "format": "email"},
        "age": {"type": "integer", "minimum": 0, "maximum": 150},
    },
    "required": ["name", "email"],
}

# 生成正向数据
data = generate(schema)

# 生成负向用例
neg_cases = generate_negative(schema)

# 多场景生成
scenarios = generates(schema, options={"expand_bool": True, "expand_enum": True})

# 校验数据
result = validate(data, source=schema)
```

### 命令行

```bash
# 生成正向测试数据
apitestgen generate schema.json

# 生成负向用例
apitestgen negative schema.json

# 多场景生成
apitestgen generates schema.json --expand-bool --expand-enum

# 校验数据
apitestgen validate schema.json data.json

# 生成完整测试集
apitestgen full schema.json
```

## 依赖

- Python >= 3.9
- jsonschema >= 4.0
- faker >= 20.0
- rstr >= 3.0

## 许可证

MIT License
