文章目录MockServer把 mock 和 proxy 揉到一个端口里1、 它能干嘛2、 协议覆盖到什么程度3、 60 秒上手4、 客户端和集成5、 怎么跑6、 一些硬性要求7、 适合谁MockServer把 mock 和 proxy 揉到一个端口里mockserver-monorepo 在 GitHub 上拿到 4,910 Star。这是一个 HTTP(S) mock server也是 proxy还能做混沌工程。三件事在同一个端口上完成。1、 它能干嘛三件事。第一是 mock。你应用依赖的接口还没上线、不稳定、或者很难复现就给它配一个假回应应用照常跑。第二是 proxy。真实流量转过去记录、查看、修改请求和响应。还能在 proxy 断点处暂停像调试器一样一步步过每个请求编辑或者丢掉。第三是混沌。让依赖按需出问题延迟、断连、报错看你的应用在依赖崩掉时怎么活。2、 协议覆盖到什么程度HTTP/1.1、HTTPS、HTTP/2、gRPC、gRPC-Web、WebSockets、裸 TCP从连接的第一个字节自动识别协议。一个端口全管不用按协议单独配。再往外还有 HTTP/3QUIC实验性单独 UDP 端口、JSON-RPC给 MCP/A2A mock 用、按 AsyncAPI 配的消息代理测试接外部 Kafka 和 MQTT还有给 AI/LLM 用的 chat-completion mock覆盖 OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI、Ollama。3、 60 秒上手Docker 起docker run -d --rm -p 1080:1080 mockserver/mockserver配一个 expectation让GET /hello返回 200 和Hello Worldcurl -X PUT http://localhost:1080/mockserver/expectation \ -H Content-Type: application/json \ -d { httpRequest: { method: GET, path: /hello }, httpResponse: { statusCode: 200, body: Hello World } }调用你 mock 出来的接口curl http://localhost:1080/hello返回Hello World。macOS 或 Linux 也可以brew install mockserver直接跑mockserver命令。4、 客户端和集成Java、Node、Python、Ruby、Go、PHP、.NET、Rust 都有客户端对应语言调用 REST 控制面。测试框架那边JUnit 4 的Rule、JUnit 5 的 extension、Spring 的TestExecutionListener、Spring Boot 的 starter 都齐了。Maven 插件能在构建生命周期里启停 MockServer。5、 怎么跑Docker、Helm/Kubernetes、JAR、WAR 都行多实例部署有集群态共享。Postman 和 Bruno 也能直接驱动仓库examples/postman和examples/bruno里就是现成的集合。6、 一些硬性要求6.x 要 Java 17 及以上。从 Java 11 抬到 17 是配合 Jakarta EE 10 和 Spring 7 的现代化改动。还卡在 Java 11 的项目只能停在5.15.x那条线那条线不再收安全更新。官方 Docker 镜像自带 Java 17。MockServer 明确是开发和测试工具不打算用在生产。安全相关事项看仓库里的 SECURITY.md。7、 适合谁在搭测试流水线、需要 mock 接口依赖的团队做 chaos 工程、要主动给依赖注故障的人调 AI 集成、需要 mock LLM 接口的应用以及任何需要在 CI 里稳定复现网络行为的工程师。chaos 工程、要主动给依赖注故障的人调 AI 集成、需要 mock LLM 接口的应用以及任何需要在 CI 里稳定复现网络行为的工程师。