拓展阅读
jmockit-01-test 之 jmockit 入门使用案例
mockito-01-overview mockito 简介及入门使用
mountebank
Mountebank 是唯一一款在协议多样性、功能性和性能方面与商业服务虚拟化工具竞争的开源工具。
以下是 Capital One 关于其移动云迁移的描述(强调为原文):
实际上,中途我们发现我们的公司模拟软件无法处理我们在这个项目中运行的大量性能测试(我们在这个过程中完全击败了一些相当强大的企业软件)。
因此,我们决定将整个程序迁移到基于 Mountebank OSS 的解决方案,通过自定义配置,使我们能够根据需求扩展/缩减我们的模拟需求。
目前,Mountebank 支持以下协议,可以直接在工具中实现,或作为社区扩展:
- http
- https
- tcp(文本和二进制)
- smtp
- ldap
- grpc
- websockets
- graphql
- snmp
- telnet
- ssh
- netconf
Mountebank 支持模拟验证、具有高级谓词的存根设置、JavaScript 注入以及通过代理进行录制和回放。
入门
install
npm install -g mountebank
run
mb
如果需要自定义 Mountebank,有许多命令行选项可供使用。
所有的 Mountebank 预发布版本都可以通过 beta npm 标签获取。
除非通过了所有测试,否则不会发布任何 beta 版本。
为什么选择 Mountebank?
Mountebank 的目标包括:
- 易于入门: Mountebank 安装简便,没有任何平台依赖性。
它致力于提供有趣且全面的文档,包含大量示例,并提供一个漂亮的 UI,让您可以交互地探索 API。
-
一个平台,而不仅仅是一个工具: Mountebank 旨在实现完全跨平台,具有本地语言绑定。当现有功能不足以满足需求时,服务器可以通过脚本进行扩展。
-
强大: Mountebank 是唯一一个非模态且支持多协议的开源服务虚拟化工具。虽然存在商业解决方案,但其许可平台使得将测试移到开发附近变得困难,甚至可能需要专门的集成开发环境(IDE)。Mountebank 免费提供服务虚拟化,没有任何平台限制。
目前,并非所有 Mountebank 的目标都已实现,但请放心,因为它拥有一支顶级的开源开发团队,而且他们众多。
mock-server/hoverfly/wiremock/mountbank 对比表格
以下是 MockServer、Hoverfly、WireMock 和 Mountebank 的简要对比表格,以帮助您了解它们之间的一些主要特性:
特性/功能 | MockServer | Hoverfly | WireMock | Mountebank |
---|---|---|---|---|
支持的协议 | HTTP, HTTPS | HTTP, HTTPS, TCP | HTTP, HTTPS, TCP, SMTP, LDAP, gRPC, WebSockets, GraphQL, SNMP, Telnet, SSH, Netconf | HTTP, HTTPS, TCP, SMTP, LDAP, gRPC, WebSockets, GraphQL, SNMP, Telnet, SSH, Netconf |
动态生成响应 | 是 | 是 | 是 | 是 |
请求匹配功能 | 强大的匹配功能,包括 URL、HTTP 方法、请求头、请求体等 | 强大的匹配功能,支持 JSONPath、XPath 等 | 强大的匹配功能,支持 URL、HTTP 方法、请求头、请求体等 | 强大的匹配功能,支持 JSONPath、XPath 等 |
录制和回放 | 是 | 是 | 是 | 是 |
客户端支持 | Java、JavaScript、Ruby | Java、Go、JavaScript | Java、JavaScript、Ruby、Scala、Go、Groovy | Java、JavaScript、Python、Ruby |