MockServer 是一个在 GitHub 上拥有近 5000 星的开源项目,核心功能是模拟 HTTP(S) 服务并充当代理。它面向的是测试场景——无论是微服务、前后端分离,还是 AI/LLM API 的依赖模拟,都能派上用场。
为什么测试团队需要它?
在实际开发中,依赖的外部服务往往不稳定或不方便在 CI 中真实调用。MockServer 可以让你在本地或容器里快速搭建一个模拟的 API 端点,返回预设的响应,甚至模拟延迟或错误。它支持的协议很全:HTTP/1.1、HTTP/2、gRPC、WebSocket、TCP,甚至实验性的 HTTP/3 和消息队列。最特别的是,它能模拟 AI/LLM API(比如 OpenAI 的接口),很适合用来测试 AI 应用的集成逻辑。
代理模式与流量查看
MockServer 也可以作为反向代理运行,捕获并检查真实流量。你可以设置 期望(Expectation):当某个请求匹配条件时,返回特定的响应。它自带一个 Web UI,能实时查看请求/响应的明细,对调试非常有用。此外,还能注入故障(比如超时、500 错误),验证你的应用是否做好了容错。
一个很典型的场景是:你的应用依赖 GPT-4 API,但测试时不想真的调用 API 浪费额度。用 MockServer 模拟 /v1/chat/completions 端点,返回预设的 JSON,就能跑通集成测试。既省了钱,又不会因为网络问题导致测试不稳定。
上手简单,配置灵活
MockServer 提供多种部署方式:直接下载 JAR 包、Docker 镜像、Maven 插件、Node.js npm 包等。对 Java 项目来说,通过 Maven 依赖引入即可用单元测试的方式启动。对非 Java 项目,Docker 容器是最便捷的方式。配置期望可以用 JSON、YAML 或 Java API,社区还提供 MockServer 客户端 SDK(Java, JavaScript, Ruby 等),让测试代码更简洁。
开源且免费(Apache 2.0 许可证),没有隐藏的付费功能。唯一的代价是学习配置规则——虽然文档很全,但初次上手可能需要花点时间理解“预期(Expectation)”的工作机制。
给测试工程师的实用要点
- 善用记录模式:先跑一次真实调用,让 MockServer 记录请求和响应,然后基于记录生成期望,这是最快的方式。
- 注意端口冲突:MockServer 默认监听 1080 端口,但可以任意配置,确保测试环境端口唯一。
- 与 CI/CD 结合:Docker 化运行比较干净,适合在 Jenkins 或 GitLab CI 中启动。
总的来说,MockServer 是一款成熟且可靠的测试辅助工具。如果你正在为外部服务的依赖测试头疼,它值得一试。










评论
暂无评论
成为第一个评论的人