jmockit-01-test 之 jmockit 入门使用案例
mockito-01-overview mockito 简介及入门使用
MockServer 能够通过 Java、JavaScript 和 Ruby 编写的客户端轻松模拟与其它系统通过 HTTP 或 HTTPS 进行集成的过程。
MockServer 还包括一个代理,可以检查所有被代理的流量,包括加密的 SSL 流量,并支持端口转发、Web 代理(即 HTTP 代理)、HTTPS 隧道代理(使用 HTTP CONNECT)等功能。
Maven Central 包含以下 MockServer 构件:
MockServer 是一个可通过 HTTP 或 HTTPS 与其集成的任何系统进行交互的工具,可以用作:
当 MockServer 收到请求时,它会将请求与已配置的活动期望进行匹配。
然后,如果找不到匹配项,它将根据需要代理请求;否则,将返回 404。
对于每个接收到的请求,会执行以下步骤:
期望定义了要采取的操作,例如,可以返回一个响应。
MockServer 支持以下操作:
以下是 MockServer、Hoverfly 和 WireMock 之间的简要对比表格:
特性/功能 | MockServer | Hoverfly | WireMock |
---|---|---|---|
支持的协议 | HTTP, HTTPS | HTTP, HTTPS, TCP | HTTP, HTTPS, TCP, SMTP, LDAP, gRPC, WebSockets, GraphQL, SNMP, Telnet, SSH, Netconf |
动态生成响应 | 是 | 是 | 是 |
请求匹配功能 | 强大的匹配功能,包括 URL、HTTP 方法、请求头、请求体等 | 强大的匹配功能,支持 JSONPath、XPath 等 | 强大的匹配功能,支持 URL、HTTP 方法、请求头、请求体等 |
动态端口分配 | 是 | 是 | 是 |
录制和回放 | 是 | 是 | 是 |
客户端支持 | Java、JavaScript、Ruby | Java、Go、JavaScript | Java、JavaScript、Ruby、Scala、Go、Groovy |
官方文档 | MockServer 文档 | Hoverfly 文档 | WireMock 文档 |
GitHub 仓库 | MockServer GitHub | Hoverfly GitHub | WireMock GitHub |
请求匹配: 当 MockServer 接收到请求时,它会将请求与配置的期望进行匹配。匹配过程包括 URL、HTTP 方法、请求头、请求体等多个方面。如果找到匹配的期望,MockServer 将执行相应的操作。
期望配置: 用户可以通过 API 或配置文件定义期望,其中包含请求的匹配条件和对应的响应。期望配置中可以包含动态生成响应的逻辑,例如基于请求参数的模板生成。
动态生成响应: MockServer 允许用户通过模板定义动态生成的响应。这使得可以根据请求的具体内容动态生成响应,例如返回不同的数据或状态码。
录制和回放: MockServer 支持录制实际的请求和响应,并在后续测试中进行回放。这有助于模拟真实系统的交互,并能够在测试过程中保持一致性。
客户端支持: MockServer 提供了多语言的客户端支持,包括 Java、JavaScript、Ruby。这样,用户可以轻松地集成 MockServer 到不同的应用程序中。
动态端口分配: MockServer 支持动态端口分配,以避免端口冲突问题。这允许用户并行运行多个 MockServer 实例,而不必手动配置端口。
跨平台: MockServer 的设计具有跨平台性,可以在不同操作系统上运行。这使得用户可以在各种环境中使用 MockServer,无论是在开发、测试还是生产环境。
mock-server 的模拟思想在实际对于常见的服务 mock 非常实用。
录制回放可以用来做很多事情,比如流量回放之类的。
后续可以考虑整合这个工具,实现一个 mock 服务平台。