开源 API 模拟与 Mock 工具,帮助开发和测试人员用可复用的模拟替代不稳定或缓慢的 API 依赖。
mswjs/msw
一个 JavaScript API 模拟库,在浏览器和 Node.js 中拦截网络请求,让应用代码保持不变并返回模拟响应。
- Star
- 18,307
- Fork
- 642
- 未关闭 Issue
- 16
- 最近提交
- 8天前
这是什么?
Mock Service Worker(MSW)在网络层模拟 API 请求。在浏览器中,它借助 Service Worker API 用你定义的模拟数据响应请求;在 Node.js 中,则通过底层拦截机制实现。由于应用自身的代码(包括 fetch、axios 及各类数据请求库)保持不变,应用的行为与线上环境一致。
请求处理器采用类似 Express 的路由语法,支持路径参数、通配符和正则表达式匹配,并可设置状态码、响应头、Cookie 和延迟,也能通过自定义解析函数动态生成响应。同一套处理器可以复用于单元测试、集成测试、端到端测试和本地开发调试,模拟的响应还能在浏览器开发者工具的 Network 面板中直接查看。
项目为浏览器提供 setupWorker,为 Node.js 提供 setupServer,并附有文档网站和示例仓库。
核心功能
- 01在网络层拦截请求,应用代码无需修改。
- 02支持在浏览器中通过 Service Worker 运行,也可在 Node.js 中用于测试和服务端。
- 03采用类似 Express 的路由匹配,支持参数、通配符和正则表达式。
- 04可自定义状态码、响应头、Cookie、延迟,或用解析函数生成响应。
- 05模拟响应可在浏览器开发者工具的 Network 面板中查看。
适用场景
- 在后端 API 未就绪时开发前端功能。
- 编写单元、集成和端到端测试,模拟 HTTP 和 GraphQL 请求。
- 模拟慢速或失败的接口,测试加载和错误状态。
- 在本地 Express 服务中对接桩化的第三方 API。
快速上手
- 1
将包安装为开发依赖
npm i msw --save-dev - 2
阅读官方快速入门指南以设置请求处理器
使用前须知
- 浏览器端模拟需要生成并随应用一起部署 Service Worker 文件。
收录于专题
标签
常见问题
- msw 是什么?
- 一个 JavaScript API 模拟库,在浏览器和 Node.js 中拦截网络请求,让应用代码保持不变并返回模拟响应。 Mock Service Worker(MSW)在网络层模拟 API 请求。在浏览器中,它借助 Service Worker API 用你定义的模拟数据响应请求;在 Node.js 中,则通过底层拦截机制实现。由于应用自身的代码(包括 fetch、axios 及各类数据请求库)保持不变,应用的行为与线上环境一致。
- msw 可以免费使用吗?用的什么许可证?
- msw 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- msw 还在维护吗?
- 活跃维护中。msw 最近一次提交是在 2026年10月17日。
- msw 适合用来做什么?
- 在后端 API 未就绪时开发前端功能。 编写单元、集成和端到端测试,模拟 HTTP 和 GraphQL 请求。 模拟慢速或失败的接口,测试加载和错误状态。 在本地 Express 服务中对接桩化的第三方 API。
- msw 怎么安装和运行?
- 将包安装为开发依赖: npm i msw --save-dev 阅读官方快速入门指南以设置请求处理器
- 在哪里获取 msw?
- 源代码和安装说明在 GitHub 上:https://github.com/mswjs/msw
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2528+1 本周232GoApache-2.0更新于 前天
Jest 是一款 JavaScript 测试框架,内置断言、模拟和快照测试,并提供交互式监听模式。
4.5万6717TypeScriptMIT更新于 15小时前
为 Go 标准测试框架提供断言、Mock 和测试套件结构的工具包。
2.6万+2 本周1870GoMIT更新于 6天前
用于在独立环境中开发和测试 React UI 组件的沙盒工具。
8690382TypeScriptMIT更新于 6天前
基于 Node.js 的测试自动化框架,通过 WebDriver、BiDi 和 Appium 驱动浏览器与移动应用进行端到端测试。
98552707TypeScriptMIT更新于 13小时前
一个本地 SMTP 服务器,在开发时截获外发邮件并在网页中查看。
6783604RubyMIT更新于 上个月