MockServer:把 mock 和 proxy 揉到一个端口里

发布时间:2026/7/9 8:20:08

MockServer:把 mock 和 proxy 揉到一个端口里 文章目录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 里稳定复现网络行为的工程师。

相关新闻