Mock Engine 是一个强大的 Python 测试数据生成和模拟引擎,专为自动化测试和开发环境设计。它提供了灵活的模板系统和代码执行引擎,支持数据库操作、断言验证等功能。
pip install mock-enginefrom mock_engine.core.template_engine import TemplateEngine
from mock_engine.core.code_engine import CodeEngine
# 模板引擎示例
template_engine = TemplateEngine(debug=True)
code_engine = CodeEngine(debug=True)# 创建模板
template = {
"greeting": "Hello, @request_body.name!",
"age": "@request_body.age",
"headers": {
"content_type": "@request_header.content-type"
}
}
# 提供数据
request = {
"headers": {
"content-type": "application/json"
},
"body": {
"name": "张三",
"age": 25
}
}
# 生成数据
result, debug = template_engine.generate(template, request)@template_engine.register_method()
def format_greeting(name):
return f"你好,{name}!"
template = {
"greeting": "{{format_greeting(name)}}"
}# 定义断言规则
assertions = [
{"path": "$.age", "op": ">", "value": 18},
{"path": "$.name", "op": "==", "value": "张三"}
]
# 生成数据并验证断言
result, assertion_results, debug = template_engine.generate_with_assertions(
template,
request,
assertions
)code = """
# 获取上下文变量
headers = get_context('headers')
body = get_context('body')
# 修改上下文变量
set_context('headers', {'user': '张三'})
# 设置状态码
set_status_code(201)
"""
result = code_engine.execute(code, request)code = """
# GET 请求
response = http_request('GET', 'https://api.example.com/data',
headers={'X-Test': 'test'})
# POST 请求
post_data = {'name': 'test', 'value': 123}
response = http_request('POST', 'https://api.example.com/create',
headers={'Content-Type': 'application/json'},
data=post_data)
"""code = """
# 执行 SQL 查询
result = sql_execute("SELECT * FROM users WHERE id = %s", params=[1])
# 执行 SQL 更新
sql_execute("UPDATE users SET name = %s WHERE id = %s",
params=['新名字', 1])
"""code = """
# 基础断言
ASSERT(1 + 1, op='==', expected=2)
ASSERT(5, op='>', expected=3)
# 字符串断言
ASSERT('hello world', op='contains', expected='hello')
"""# 模板引擎调试
template_engine = TemplateEngine(debug=True)
# 代码引擎调试
code_engine = CodeEngine(debug=True)# 模板引擎调试输出
[
"开始生成数据",
"模板内容: {...}",
"请求数据: {...}",
"生成完成"
]
# 代码引擎调试输出
[
"开始执行代码",
"代码内容: ...",
"执行SQL: ...",
"代码执行完成"
]- Python 3.7+
- pip
# 克隆仓库
git clone https://github.com/yourusername/mock-engine.git
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
.\venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt- 调试模式会影响性能,建议只在开发环境使用
- 数据库配置信息建议通过配置文件管理
- 生产环境请关闭调试模式
- 注意保护敏感信息(如数据库密码)
MIT License