MCPcopy Index your code
hub / github.com/duxiaoman/AnyMock

github.com/duxiaoman/AnyMock @v1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1 ↗ · + Follow
2,404 symbols 4,592 edges 194 files 131 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AnyMock

一、产品介绍

AnyMock是一个通用接口Mock平台,提供Mock配置和模拟响应的服务。

起源于银行通道接入在所依赖服务不稳定或不可用时模拟系统返回交互报文,保障项目稳定开展和线下环境的稳定业务回路。开源v1.0覆盖了http协议、xml/k-v/json报文格式、同/异步等不同类型的通讯方式,具有可扩展性,可通过脚本语言动态组装响应报文。

使用AnyMock后,服务调用变成了如下的交互方式:

AnyMock具有以下特征 - 解决外部依赖: 在外部系统不稳定或者不可用的情况下,使用AnyMock来替代,可以保证项目如期推进。 - 构造异常测试: 在交互复杂的线下测试环境,使用AnyMock替代真实数据,可以以较小的代码构造异常的数据、覆盖更多的业务分支和异常场景。 - 支持性能测试: 在线上环境进行压测,使用AnyMock替代依赖下游服务,可以屏蔽对下游服务的影响,压出被压服务自己的性能数据。 - 稳定自动化测试: 在依赖较多的线下自动化测试环境,使用AnyMock替代下游测试服务,可以最大保障自动化case运行的环境稳定性。 - 降低测试成本: 在外部系统调用代价较高时,使用AnyMock解耦与外部系统的依赖,降低真实调用的测试成本。

AnyMock平台主要包含两个部分: - 接口管理后台即AnymockWeb系统,主要提供Mock配置和管理。展示已有节点空间、接口的信息,并对这些接口的详细内容进行查看、修改或者新增接口。 - 服务核心系统AnymockCore,接收上游请求,模拟响应的服务。承担所有核心流程处理、及对应的数据输出。

AnyMock的系统架构图

二、文档

有关完整文档,示例,博客文章,操作详细信息和其他信息,请参阅wiki

三、AnyMock的开源生态

四、快速开始

1. 如何初始化数据库

执行 anymock_opensource.sql

2. 如何构建

# 执行build.sh脚本
sh build.sh

3. 运行AnyMockCore

# 切换到编译产出目录
cd output/core

# 后台运行,默认使用配置文件anymock-core-config.yml
nohup java -jar anymock-core-runner-1.0-SNAPSHOT.jar >/dev/null 2>/dev/null &

# 后台运行,使用自定义配置文件, 其中${env}需替换为配置文件环境名
nohup java -jar anymock-core-runner-1.0-SNAPSHOT.jar --spring.profiles.active=${env} >/dev/null 2>/dev/null &

4. 运行AnyMockWeb

# 切换到编译产出目录
cd output/web

# 1. 下载前端代码库(anymock-fe)!!!,并将yml配置文件中的fe.path修改为anymock-fe的dist目录地址,
# 如果前端代码不调整位置,默认是/anymock-fe/dist/ 即可

# 2. 后台运行, 默认使用配置文件anymock-core-config.yml
nohup java -jar anymock-core-runner-1.0-SNAPSHOT.jar >/dev/null 2>/dev/null &

使用自定义配置文件启动, 其中${env}需替换为配置文件环境名
nohup java -jar anymock-web-runner-1.0-SNAPSHOT.jar --spring.profiles.active=${env} >/dev/null 2>/dev/null &

5. 接下来就开始使用吧!

管理后台 :访问 http://${ip}:{web port}/fe/index.html

Mock配置详细介绍和使用文档可参考:AnyMockWeb管理后台

核心服务 :访问 http://${ip}:{core port}/${接口url}

从服务调用方发起业务流程,请求到AnyMock核心服务而非真实要调用的服务提供方的系统.

五、问题和反馈

有关错误报告,问题和讨论,请提交GitHub问题

联系我们:

Extension points exported contracts — how you extend this code

TcpInterfaceSnapshotDao (Interface)
Created by jff on 2019/9/3. [12 implementers]
common/dal/src/main/java/com/dxm/anymock/common/dal/dao/TcpInterfaceSnapshotDao.java
TcpAsyncMockServer (Interface)
Created by jff on 2019/8/30. [5 implementers]
core/biz/src/main/java/com/dxm/anymock/core/biz/service/TcpAsyncMockServer.java
HttpInterfaceService (Interface)
(no doc) [5 implementers]
manager/biz/src/main/java/com/dxm/anymock/manager/biz/service/HttpInterfaceService.java
TcpServiceClient (Interface)
Created by jff on 2019/9/6. [2 implementers]
manager/integration/src/main/java/com/dxm/anymock/manager/integration/client/TcpServiceClient.java
HttpInterfaceSnapshotDao (Interface)
(no doc) [12 implementers]
common/dal/src/main/java/com/dxm/anymock/common/dal/dao/HttpInterfaceSnapshotDao.java
HttpSyncMockService (Interface)
(no doc) [5 implementers]
core/biz/src/main/java/com/dxm/anymock/core/biz/service/HttpSyncMockService.java
TcpInterfaceService (Interface)
Created by jff on 2019/8/26. [3 implementers]
manager/biz/src/main/java/com/dxm/anymock/manager/biz/service/TcpInterfaceService.java
InterfaceBranchDao (Interface)
Created by jff on 2019/8/26. [2 implementers]
common/dal/src/main/java/com/dxm/anymock/common/dal/dao/InterfaceBranchDao.java

Core symbols most depended-on inside this repo

addCriterion
called by 292
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceDOExample.java
addCriterion
called by 264
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/TcpInterfaceDOExample.java
addCriterion
called by 116
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceSnapshotDOExample.java
addCriterion
called by 102
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/TcpInterfaceSnapshotDOExample.java
addCriterion
called by 88
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/SpaceDOExample.java
addCriterion
called by 66
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceBranchDOExample.java
addCriterion
called by 66
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceHeaderDOExample.java
addCriterion
called by 66
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/InterfaceBranchDOExample.java

Shape

Method 2,178
Class 132
Function 52
Interface 35
Enum 7

Languages

Java98%
TypeScript2%

Modules by API surface

common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceDOExample.java321 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/TcpInterfaceDOExample.java293 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceSnapshotDOExample.java145 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/TcpInterfaceSnapshotDOExample.java131 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/SpaceDOExample.java117 symbols
core/biz/src/main/java/com/dxm/anymock/core/biz/codec/protobuf/DemoReqProto.java96 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/InterfaceBranchDOExample.java95 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceHeaderDOExample.java95 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceBranchDOExample.java95 symbols
core/biz/src/main/java/com/dxm/anymock/core/biz/codec/protobuf/DemoRespProto.java74 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/model/HttpInterfaceBO.java47 symbols
common/dal/src/main/java/com/dxm/anymock/common/dal/entity/HttpInterfaceDO.java45 symbols

Datastores touched

(mysql)Database · 1 repos
anymock_opensourceDatabase · 1 repos

For agents

$ claude mcp add AnyMock \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact