免费开源API Mock工具推荐:适用于CLI开发与测试
时间:2026-08-15 | 作者:318050 | 阅读:0当你在命令行中 mock 接口时,开源许可协议与功能列表同样重要。一个你可以阅读源码、自行托管并在 CI 中运行且无席位限制的 mock 服务端,与一个需要登录的托管式 SaaS mock 服务有着天壤之别。本指南将介绍开源领域的工具:你可以免费克隆、检查和运行它们。
这里介绍的每款工具都是在宽松许可协议(MIT 或 Apache-2.0)下提供源码的,托管在公开的 GitHub 仓库中,并且无需账号即可自行托管。这就是筛选标准。如果你想寻找体积更小、按启动速度和安装包大小排序的单二进制文件,请阅读另一篇关于轻量级 mock 服务端推荐的配套文章;而本列表侧重于源码开放和自行托管,因此即使是体量较重的可自行托管平台也占有一席之地。
针对每款工具,我们都会提供其开源许可协议、一条用于验证其正常运行的“安装并运行”命令、其最擅长的场景以及不足之处。如果你想了解更广泛的领域(包括商业方案),可以阅读最佳 API mock 工具汇总和 REST API mock 工具概述。
在开始列表之前,先做一个坦诚的说明。Apifox 并不是开源的,它是一个免费增值的商业平台。它仅在文末作为这些工具的集成替代方案出现一次,并带有清晰的标记,不作为开源项目列入。下面编号章节中的所有内容都是真正的开源项目。
什么是开源的 CLI mock 工具
决定一个工具是否能列入此名单有三个要素。
开源许可协议。 源码必须在宽松的许可协议下公开。这里挑选的每个工具都采用 MIT 或 Apache-2.0 协议,因此你可以阅读、fork 并在自己的产品中集成它们,而无需支付许可费或受席位限制。
可自行托管。 你可以在自己的笔记本电脑、容器或自己的服务端上运行它。没有托管的控制面板,没有数据回传,没有账号限制。这使得 mock 在隔离的 CI 运行器(CI runner)中依然可用。
公开维护。 拥有一个包含真实提交历史、Issue 和 Release 的公开 GitHub 仓库。Star 数量只是一个粗略的信号,最近的提交和标记的 Release 才是更好的衡量标准。
请注意,不在列表考量范围内的是:纯粹的速度或安装大小。这些是轻量级工具关注的角度。在这里,只要源码开放且许可协议免费,大型的、基于容器的、可自行托管的平台都在考虑范围内。
Prism (Stoplight)
Prism 可以将 OpenAPI 或 Postman 文件转换为实时的 mock 服务端。将其指向某个接口定义/规范,它就可以提供示例响应,根据数据模型校验传入的请求,并可以作为真实 API 前端的校验袋里运行。许可协议:Apache-2.0。仓库:stoplightio/prism。
npm install -g @stoplight/prism-cliprism mock https://raw.githubusercontent.com/stoplightio/prism/master/examples/petstore.oas2.yaml
执行这条命令后,会在 http://127.0.0.1:4010 启动一个完全基于接口规范生成的 mock 服务。向它发送 GET /pets 请求时,返回的就是 OpenAPI 文档里定义好的示例内容;如果提交了错误的 payload,Prism 也不会含糊,会直接指出具体是哪一部分不符合数据模型。
最擅长: 以 OpenAPI 文件作为唯一事实源、基于规范驱动的契约 mock。其校验袋里模式是一大亮点,能够捕获你的接口规范与真实 API 之间的偏差。
局限性: 响应来自你的示例和数据模型,因此 mock 的丰富程度完全取决于接口规范。没有内置的有状态行为(即不支持“先创建,再读取”的逻辑)。作为一个 Node 工具,你需要安装 Node 运行环境。
Mockoon CLI
Mockoon 最为人熟知的是其桌面版,但其 CLI 版本搭载了相同的引擎(无 GUI 界面),专门针对 CI 和自托管场景设计。你可以在桌面版中或手动设计一个环境,也可以直接向其提供一个 OpenAPI 文件,它便会运行该 mock 服务。许可证:MIT。仓库:mockoon/mockoon。
npm install -g @mockoon/climockoon-cli start --data ./environment.json --port 3000
你也可以直接通过 --data ./openapi.yaml 传入 OpenAPI 文件来启动服务。添加 --watch 参数可以在文件发生变更时自动重载,添加 --log-transaction 则可以打印完整的请求/响应日志。
最擅长: 无需编写代码即可实现丰富的、基于规则的响应。Mockoon 支持响应模板、条件规则和袋里模式,因此单个接口可以根据请求的不同返回不同的 body。在桌面版中进行可视化设计,并配合 CLI 进行无头(headless)运行,这种分工非常清晰。
局限性: 最佳的编写方式是使用其桌面版,直接手动编辑环境的 JSON 配置文件会比较繁琐。此外,其动态模板语法也存在一定的学习曲线。
json-server
json-server 是伪造 REST API 最快捷的方式。只需提供一个 JSON 文件,它就能生成完整的 CRUD 路由(GET、POST、PUT、PATCH、DELETE),并能将数据修改真实地持久化写入该文件中。许可证:MIT。仓库:typicode/json-server。
npx json-server db.json
只要在 db.json 中定义了一个顶层的 "posts" 数组,你就能立即获得 GET /posts、GET /posts/1、POST /posts 等接口,并且还支持通过 query 参数进行过滤、排序和分页。发送 POST 请求添加一条新记录,它就会被写入文件;再次读取该记录即可成功获取。
最擅长: 后端尚未就绪前的纯前端开发。它开箱即用支持有状态,这是 Prism 和大多数基于规范驱动的 mock 所不具备的。零配置,且使用 npx 运行意味着你甚至不需要安装它。
局限性: 它对 REST 的设计规范有强烈的约束,因此无法随意匹配自定义的 API。不支持导入 OpenAPI,JSON 文件本身即为契约。它不适用于压力测试或模拟类似生产环境的行为。
WireMock
WireMock 是开源 HTTP mock 领域的重量级选手,每月有数百万次的下载量。它作为一个独立的进程运行,可以通过 JSON 管理 API 或 JSON 桩(stub)文件进行配置,支持请求匹配、响应模板、有状态场景、故障注入以及录制与回放。许可证:Apache-2.0。仓库:wiremock/wiremock。
docker run -it --rm -p 8080:8080 wiremock/wiremock:latest curl -X POST http://localhost:8080/__admin/mappings -H 'Content-Type: application/json' -d '{"request":{"method":"GET","url":"/hello"},"response":{"status":200,"body":"world"}}'
第一行启动了 WireMock;第二行通过其 admin API 注册了一个存根 (stub)。现在运行 curl http://localhost:8080/hello 就会返回 world。你也可以将存根文件放入 mappings/ 目录并将其挂载到容器中。
最擅长:复杂的测试场景。有状态的行为、通过延迟和故障模拟不稳定的第三方,以及通过袋里加录制来捕获真实 API 并以便后续回放。当你的 mock 需要在测试中表现得与真实服务完全一致时,这就是首选工具。
局限性:它是一个基于 JVM 的工具,因此需要容器或 Ja va 运行时作为准入门槛。其配置项繁多,对于简单的 mock 来说有些大材小用。它不像 Prism 那样,拥有可以“读取规范并直接运行”的单一命令。
MockServer
MockServer 是一款专为集成测试准备的 HTTP(S) Mock 与袋里工具,运行时只占用一个端口,用起来相当直接。它既可以用来模拟 API,也能充当袋里并记录真实流量,还支持主动注入故障,方便验证客户端在异常场景下的处理能力。新版本进一步补上了对 HTTP/2、gRPC 和 WebSocket 的支持。许可证:Apache-2.0。仓库:mock-server/mockserver。
docker run -d --rm -p 1080:1080 mockserver/mockserver curl -X PUT 'http://localhost:1080/mockserver/expectation' -H 'Content-Type: application/json' -d '{"httpRequest":{"path":"/order"},"httpResponse":{"body":"{"status":"ok"}"}}'
该 PUT 请求注册了一个“mock 期望”;在此之后,运行 curl http://localhost:1080/order 就会返回你的 JSON。MockServer 的客户端(Ja va、Ja vaScript、Ruby 等)允许你在测试代码内部设置相同的 mock 期望,而无需通过 curl。
最擅长:在同一处进行 mock 和袋里,以及故障注入。如果你需要验证某个特定请求是否被发送了特定的次数,MockServer 的验证 API 就是为此而设计的。非常适合重度依赖 JVM 的技术栈。如果它不太适合你的需求,可以阅读我们的 MockServer 替代方案文章。
局限性:和 WireMock 一样,它是基于 JVM 的,且 mock 期望的 JSON 格式较为冗长。它与 WireMock 的功能重叠度很高;你可以根据哪个客户端库更适合你的测试技术栈来二选一。
Microcks
Microcks 是平台级的选择,它是云原生计算基金会(CNCF)的孵化项目。它能将 OpenAPI、AsyncAPI、gRPC、GraphQL、Postman 集合和 SoapUI 项目转化为实时 mock,并复用这些契约对你的真实实现进行一致性测试。它不仅支持 HTTP,还覆盖了事件驱动和异步协议。许可证:Apache-2.0。仓库:microcks/microcks。
bash docker run -d --name microcks -p 8585:8080 quay.io/microcks/microcks-uber:latest
这会运行多合一镜像;打开 http://localhost:8585 并导入接口规范以获取 mock 接口。配套的 microcks-cli 可以通过 CI 驱动正在运行的服务端:
microcks-cli import 'petstore.yaml:true' --microcksURL=http://localhost:8585/api --keycloakClientId=... --keycloakClientSecret=...
最适合:希望跨多种 API 和协议对 mock 进行统一管控,且内置契约测试的团队。在此领域中,支持异步/事件驱动的 mock(如 Kafka、MQTT 等)是比较少见的。
局限性:这是一个服务端,而不是单个二进制文件。一个重要的注意事项是:microcks-cli 是针对正在运行的 Microcks 实例触发测试并导入产物的,它本身并不直接提供 mock 服务。因此,该 CLI 只是一个客户端,你仍然需要运行整个平台。对于一次性的本地 mock,这比 Prism 或 json-server 显得更为厚重。
诚恳的题外话:Apifox
Apifox 并不是开源的,所以它在这里没有排上编号。但如果你注意到上述工具分别解决不同的问题(规范驱动的 mock、有状态的 CRUD、契约测试),而你不想把它们拼凑在一起,那么它非常值得一提。Apifox 是一个免费增值模式的平台,其免费额度中包含了 mock 功能。通过 apifox-cli 中的 apifox mock,你可以在终端中管理 mock 期望,并在同一个项目中同步进行设计、测试和文档编写。智能 mock 可以根据你的数据模型自动生成逼真的字段值,免去了手写示例 body 的烦恼。
权衡非常明显:你获得的是一体化的工作流和免费额度,而不是开源和自托管。如果开源或离线自托管是硬性需求,那么上述六种工具之一就是你的选择。如果一体化的“设计到 mock”闭环更为重要,Apifox 则是避免拼接多个工具的替代方案。
如何选择
| 工具 | 最适合 | 安装 | 许可证 | 备注 |
|---|---|---|---|---|
| Prism | 规范驱动的 mock + 校验袋里 | npm i -g @stoplight/prism-cli | Apache-2.0 | 输入 OpenAPI/Postman,输出 mock;无状态 |
| Mockoon CLI | 基于规则的响应,无需代码 | npm i -g @mockoon/cli | MIT | 在应用中进行设计,无头(headless)运行 |
| json-server | 面向前端的有状态伪 REST | npx json-server db.json | MIT | 具备持久化功能的完整 CRUD,零配置 |
| WireMock | 复杂的测试场景、故障模拟 | docker run wiremock/wiremock | Apache-2.0 | JVM;录制与回放;有状态 |
| MockServer | mock + 袋里 + 验证 | docker run mockserver/mockserver | Apache-2.0 | JVM;HTTP/2、gRPC、WebSocket |
| Microcks | 统一管控的多 API/协议目录 | docker run microcks-uber | Apache-2.0 | CNCF 平台;CLI 是客户端,而不是服务端 |
| Apifox(非开源) | 一体化的“设计到 mock” | npm i -g apifox-cli | 免费增值 | 免费额度;单个项目内使用 apifox mock |
根据具体的需求形态来选择,而不是看流行程度。如果需要一个能够读取 OpenAPI 文件并强制执行其规范的 mock,可以从 Prism 开始。如果要在后端服务就绪之前进行有状态的 CRUD,json-server 在速度上更胜一筹。对于包含故障注入和录制回放的丰富测试场景,可以选择 WireMock 或 MockServer(根据你所使用的客户端库来选择)。对于包含契约测试的共享式、多协议目录,Microcks 是理想之选。至于哪种形态适合哪种情况,可以参考将工具与场景进行映射的 API mock 用例指南。
总结
开源 CLI mock 工具为你免费提供了一个可阅读、可自托管并在 CI 中运行的 mock 服务端。Prism 和 json-server 只需一行命令即可覆盖常见场景;WireMock 和 MockServer 能够应对复杂的测试场景;Microcks 则将其扩展为跨协议的受管控目录。这六款工具均采用 MIT 或 Apache-2.0 协议,支持自托管,且全部在 GitHub 上公开。
如果你希望在进行 API 设计、测试和编写文档的同时管理 mock,而不想把各种独立的工具拼凑在一起,可以下载 Apifox 并在免费额度内尝试 apifox mock。它虽非开源,但能提供一个一站式平台,让你在从命令行到 CI 的整个工作流闭环中高效运行。
开发必备:API 全流程管理神器 Apifox
介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。
如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用。
值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案。
来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 苏州GEO系统开源部署实战:制造企业30天快速落地指南
- 时间:2026-08-18
-
- JimuChatBI v1.0发布:开源对话式Chat2BI智能问数产品
- 时间:2026-08-18
-
- 阿里云秒悟Meoo CLI开源工具一键部署上线指南
- 时间:2026-08-18
-
- 小米MiMo Code开源后Bug频发,5人2周做出5.1k星项目引热议
- 时间:2026-08-18
-
- 智谱GLM-5.2全量开源推动前沿人工智能全民化
- 时间:2026-08-17
-
- 免费开源CLI工具推荐:适合API设计与开发使用
- 时间:2026-08-15
-
- 免费开源API测试CLI工具推荐与使用指南
- 时间:2026-08-15
-
- Spatial-TTT流式视觉空间智能框架:清华联合混元开源发布
- 时间:2026-08-15
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- 无锡GEO系统开源定制方案:制造业四大核心需求改造指南
- 时间:2026-08-18
-
- 苏州GEO系统开源部署实战:制造企业30天快速落地指南
- 时间:2026-08-18
-
- 美国部分学生用AI代修整门网课,智能体成逃课工具?
- 时间:2026-08-18
-
- 截至今年8月科技行业裁员12.6万人超去年全年
- 时间:2026-08-18
-
- IBM与Together AI合作部署NVIDIA AI基础设施方案
- 时间:2026-08-18
-
- MiniMax Agent周报自动生成工作流搭建教程
- 时间:2026-08-18
-
- MiniMax Agent多步骤任务表格数据处理实用教程
- 时间:2026-08-18
-
- 硅基流动报错401和429怎么解决?常见错误代码排查方法
- 时间:2026-08-18
