
syngenta/diffyDiffy是一款专注于API差异化测试的工具,旨在通过对比多个环境(如生产、候选、基线)的API请求与响应,自动识别接口行为差异,帮助开发与测试团队验证API变更的正确性。本镜像特别支持接入外部数据库,解决了内置数据库的数据存储限制问题,便于测试数据持久化管理、多实例数据共享及大规模测试场景的数据扩展,提升测试环境的灵活性与可维护性。
通过docker run快速启动Diffy容器,需指定外部数据库连接参数及必要端口映射:
bashdocker run -d \ --name diffy \ -p 8888:8888 \ # Web界面端口 -e DB_TYPE=mysql \ # 数据库类型,支持mysql/postgresql -e DB_HOST=your-db-host \ # 外部数据库主机地址 -e DB_PORT=3306 \ # 数据库端口 -e DB_USER=diffy_user \ # 数据库用户名 -e DB_PASS=diffy_password \ # 数据库密码 -e DB_NAME=diffy_db \ # 数据库名称(需提前创建) -v /local/path/to/config:/app/config \ # 挂载自定义配置文件(可选) diffy:latest
| 环境变量 | 说明 | 取值示例 | 是否必填 |
|---|---|---|---|
DB_TYPE | 外部数据库类型 | mysql/postgresql | 是 |
DB_HOST | 数据库主机地址 | 192.168.1.100/db.example.com | 是 |
DB_PORT | 数据库端口 | 3306(MySQL默认)/5432(PostgreSQL默认) | 是 |
DB_USER | 数据库访问用户名 | diffy_user | 是 |
DB_PASS | 数据库访问密码 | StrongPassword123! | 是 |
DB_NAME | 数据库名称(需提前创建) | diffy_db | 是 |
BASELINE_URL | 基线环境API基础URL(默认测试配置) | [***] | 否 |
CANDIDATE_URL | 候选环境API基础URL(默认测试配置) | [***] | 否 |
PRODUCTION_URL | 生产环境API基础URL(默认测试配置) | [***] | 否 |
PORT | Diffy服务端口(容器内) | 8888(默认) | 否 |
如需更复杂的测试配置(如自定义比较规则、API路径过滤),可通过挂载配置文件实现。创建本地配置文件(如diffy.config),内容示例:
json{ "comparison": { "ignoreFields": ["timestamp", "requestId"], // 比较时忽略的字段 "timeoutMillis": 5000 // 响应超时阈值(毫秒) }, "endpoints": { "includePatterns": ["/api/v1/.*"], // 包含的API路径正则 "excludePatterns": ["/api/v1/health"] // 排除的API路径正则 } }
挂载配置文件到容器内/app/config目录:
bash-v /local/path/to/diffy.config:/app/config/diffy.config
容器启动后,通过http://<主机IP>:8888访问Diffy Web界面,配置测试环境、发起测试任务并查看差异结果。测试数据将自动存储至指定的外部数据库,可通过数据库工具直接查询历史记录。
docker-compose管理,并配置数据库备份策略,确保测试数据安全。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务