Comparison of API simulation tools

The tools listed here support emulating[1] or simulating APIs and software systems. They are also called[2] API mocking tools, service virtualization tools, over the wire test doubles and tools for stubbing and mocking HTTP(S) and other protocols.[1] They enable component testing in isolation.[3]

In alphabetical order by name (click on a column heading to sort by that column):

Name | FOSS | Free | Supported protocols and APIs | Has a GUI | Scriptable/Programmable | Docker support | Cloud offering

|
|
|
|
|
|
|

API Simulator | No; Proprietary[4] | Yes | HTTP/2 with TLS ALPN; HTTP/2 with prior knowledge; HTTP/2 upgrade from HTTP/1.1; HTTP/1.x with and without TLS/SSL; HTTP(S) | Yes[5] | Yes[6][7] | Yes[8] | No
apiUi [9] | Yes; GPL v3.0[10] | Yes | HTTP(S); STOMP, WSDL; Swagger; OpenAPI; Cobol | Yes[11] | Yes[12] | Yes[13] | No
Beeceptor [14] | No; Proprietary[15] | Yes (Free plan) | HTTP1.1; HTTP2; HTTP(S); SOAP, MITM/Proxing; Swagger; OpenAPI; TLS 1.2; XML; Local tunneling | Yes | Yes[16] | No | Yes
Camouflage | Yes; MIT[17] | Yes | HTTP(S), HTTP/2 gRPC, Websockets, Thrift | Yes[18] | Yes[19] | Yes[20] | No
Castle Mock | Yes; Apache 2[21] | Yes | HTTP(S) | Yes | Yes | Yes | No
Charles Proxy | No; Proprietary[22] | No | HTTP(S) | Yes | No | No | No
Ekko Proxy | No; Proprietary | Yes (non commercial use)[23] | HTTP(S), JDBC; WSDL, Swagger, OpenApi, JWT. | Yes[24] | Yes (Scriptable) | Yes | No
HAM | Yes; MIT | Yes | HTTP(S), SOAP, MITM/Proxing, Swagger, XML, JSON, Jackson-Smile, Brotli, Record, Replay, Automatic tests, Schema verification, JDBC, MongoDb | Yes (Web) | Yes (Dynamic Javascript and Java Plugins) | Yes | No
Hoverfly  | Yes; Apache 2[25] | Yes | HTTP(S) | Yes | Yes | Yes | Yes [26]
HTTP Toolkit | Yes; AGPL[27] | Yes (Hobbyist Edition)[28] | HTTP(S) | Yes | No | No | No
Int4 IFTT | No; Proprietary | No | HTTP(S), Middleware virtualization: SAP Process Orchestration, SAP Intelligent Suite, Dell Boomi, Software AG Webmethods, SAP IDOCs | Yes | Yes | No | No
Karate | Yes; MIT[29] | Yes | HTTP(S), Java interop[30] | No | Yes[30] | No | No
Microcks | Yes; Apache 2[31] | Yes | HTTP(S), SOAP, gRPC, GraphQL, AsyncAPI[32] | Yes | Yes | Yes | No
Mockadillo | No; Proprietary | No  | HTTP(S)[33] | Yes | Yes | No | Yes
Mocklets | No; Proprietary[34] | Yes | HTTP(S) | Yes | No | No | Yes [35]
Mockoon | Yes; MIT[36] | Yes  | HTTP(S)[37] | Yes | Yes | Yes [38] | No
MockServer | Yes; Apache 2[39] | Yes | HTTP(S) | Yes[40] | Yes | Yes | No
mock.qa | No; Proprietary | Yes (Free plan)[41] | gRPC, gRPC-web, HTTP/1.x, HTTP/2[42] | Yes[43] (Web) | Yes[44][45] (Scripting language,[46] Request matching,[47] Response templating,[48] Data generation,[49] Stateful scenarios[50]) | No | Yes
Mountebank | Yes; MIT[51] | Yes | HTTP(S), TCP, SMTP[52] | No | Yes[53] | Yes[54] | No
NetOcean | No; Proprietary  | No  | Web Services Protocols: HTTP, HTTPS, HTTP2, REST, SOAP, Hessian

Others: IMAP, FTP, DNS, XML, JSON, WebSocket

ESB / Middleware Protocols, TIBCO JMS

Database Protocols: JDBC

Proprietary: TCP, UDP

Platforms: TIBCO-EMS, IBM-MQ, Kafka

SOA Protocols: SOAP, HTTP, XML, REST

SMS Gateway Providers: SMTP, POP3

Bill Payments Services: Gift card- PINPAD, AJB

| Yes  | Yes  | Yes  | Yes
Parasoft Virtualize | No; Proprietary | Yes (Community Edition)[55] | AMQP, FIX, FTP, HTTP(S), ISO 8583, JMS,
JDBC, MQ, MQTT, .NET WCF, RabbitMQ, SAP, TCP/IP, etc.[56] | Yes | Yes | Yes[57] | Yes
Postman | No; Proprietary | Yes (Free Edition)[58] | HTTP(S) | Yes | Yes (JSON Examples) | No | Yes
ProxyMan | No; Proprietary | Yes,[59] (Limited) | HTTP(S), Websockets | Yes | Yes[60] | No | No
QuickMocker | No; Proprietary | Yes (Free Subscription)[61] | HTTP(S) | Yes | Yes[62] | No | Yes
Rapidmock | No; Proprietary[63] | Yes (Free Edition) | HTTP(S) | Yes | No | No | Yes
Requestly | Yes; GPL v3.0[64] | Yes[65] | HTTP(S) | Yes | Yes | No | Yes[66]
sMockin | Yes; Apache 2[67] | Yes | HTTP, Websockets, Server Side Events, plus tools for real time monitoring & live response modification | Yes | Yes | Yes | No
Smocker | Yes; MIT[68] | Yes | HTTP(S)[69] | Yes | Yes | Yes | No
SmartMock.io | No; Proprietary[70] | Yes [71] | HTTP(S) | Yes | Yes | No | Yes
specmatic.in | Yes; MIT[72] | Yes | HTTP(S), Swagger, OpenAPI, WSDL, Kafka (WIP) | No | Yes | No | No
simulado  | Yes; MIT[73] | Yes  | HTTP(S)  | No  | Yes  | Yes  | Yes
SoapUI MockServer | Yes; EUPL[74] | Yes | HTTP(S)[75] | Yes[75] | No[75] | No[75] | No[75]
Speedscale | No; Proprietary  | Yes, (Free Trial)[76] | HTTP(S), gRPC, GraphQL webservices, Message queues, OSS Databases[77] | Yes  | No, Not required. Traffic recording-based[78] | Yes  | Yes
Stoplight | Yes; Apache 2[79] | Yes (Free Edition)[80] | HTTP(S) and generate mocks directly from OpenAPI | Yes | Yes | Yes | Yes
Traffic Parrot  | No; Proprietary[81] | No;[82] | HTTP(S) including REST and SOAP

gRPC

JMS (ActiveMQ TCP, ActiveMQ AMQP 1.0, Azure AMQP 1.0, RabbitMQ AMQP 0.9.1, IBM® WebSphere MQ 7.5+)

Native IBM® WebSphere MQ 7.5+

Thrift

AMQP 1.0

File transfers over a filesystem

Amazon Simple Queue Service (SQS)

Azure Service Bus AMQP 1.0 [83]

In beta:[84] FIX, FAST, FIXatdl, SWIFT, MQTT, SonicMQ, Kafka, CORBA, FTP, SFTP, .NET WCF, RMI, MTP, TIBCO EMS, CICS, SAP RFC, JDBC, Mongo, Databases, OFX, IFX, RIXML, AS2, Amazon Simple Notification Service (SNS), AWS IoT Message Broker, XMPP, Google Cloud Messaging (GCM), Azure Event Grid, Azure Event Hubs, STOMP, Avro, HTTP/2 (HTTP2), LWM2M, CoAP (Constrained Application Protocol), ZeroMQ, Broker-J (BrokerJ), Qpid, QUIC and gQUIC (Google QUIC)

| Yes[81] | Yes[85] | Yes[81] | Yes[86][81]
tweak | No; Proprietary | Yes | HTTP(S) | Yes | No | No | No
Tricentis API Simulation | No; Proprietary | Yes(Free Edition)[87] | Http(s), AmazonSqs, AMQP, AzureServiceBus, Files, IbmMQ, Kafka, RabbitMQ, Solace | Yes [87] | Yes [87] | Yes [88] | Yes [87]
Wilma | Yes; GPL v3.0[89] | Yes [90] | HTTP(S) | Yes | Yes | Yes [91] | No
WireMock | Yes; Apache 2[92] | Yes | HTTP(S), gRPC, GraphQL | Yes | Yes | Yes | Yes [93]
WireMock.Net | Yes; Apache 2[94] | Yes | HTTP(S) | No | Yes | Yes [95][96] | No
Wiresham | Yes; Apache 2[97] | Yes | TCP | No | Yes | No | No

## See also

[edit]

* Test double
* Service virtualization

## References

[edit]

1. ^ a b Thought Works Technology Radar Mountebank
2. ^ Tom Akehurst at the Next Gen Service Virtualisation Forum
3. ^ Martin Fowler, Microservce Testing, Component Testing
4. ^ API Simulator License Agreement
5. ^ API Simulation Modeler
6. ^ Scripting in API Simulator
7. ^ Simula Template Scriptlets
8. ^ API Simulator in Docker Container
9. ^ apiUi how to mock api calls? how to test api calls?
10. ^ apiUi License
11. ^ The apiUi GUI
12. ^ apiUi Scripting; adding dynamics
13. ^ apiUi Docker
14. ^ Beeceptor eases API development and testing by allowing mocking, intercepting and MITM proxies
15. ^ Beeceptor pricing
16. ^ Handlebar templates for scripting; adding dynamic responses
17. ^ Camouflage License
18. ^ Camouflage UI
19. ^ Scripting in Camouflage
20. ^ Camouflage Docker
21. ^ Castle Mock License
22. ^ Charles Proxy EULA
23. ^ Ekko Proxy License Agreement
24. ^ Ekko Proxy Usage
25. ^ Hoverfly license
26. ^ Hoverfly Cloud
27. ^ HTTP Toolkit license
28. ^ HTTP Toolkit tiers
29. ^ Karate license
30. ^ a b Karate-Netty home page
31. ^ Microcks License
32. ^ Using Microcks
33. ^ "Mockadillo". Mockadillo Homepage.
34. ^ Mocklets Terms of Use
35. ^ Mocklets
36. ^ Mockoon license
37. ^ "Mockoon". Mockoon features page.
38. ^ Mockoon CLI dockerhub
39. ^ MockServer License
40. ^ MockServer Dashboard
41. ^ Mock.qa: Free plan on GitHub Markeplace
42. ^ Mock.qa: Supported protocols
43. ^ Mock.qa: Playground
44. ^ Mock.qa: Configuration
45. ^ Mock.qa: Configuration examples
46. ^ Mock.qa: Scripting language
47. ^ Mock.qa: Request matching
48. ^ Mock.qa: Response templating
49. ^ Mock.qa: Data generation
50. ^ Mock.qa: Stateful scenarios
51. ^ Mountebank license
52. ^ Moutebank home page
53. ^ Mountebank injection
54. ^ Running Mountebank in Docker
55. ^ Parasoft Virtualize Community Edition
56. ^ Parasoft Virtualize home page
57. ^ Virtualize Docker Files 1.0
58. ^ Postman Pricing
59. ^ Proxyman Pricing
60. ^ Proxyman scripting
61. ^ QuickMocker Pricing
62. ^ QuickMocker RegExp & Shortcodes
63. ^ Rapidmock home page
64. ^ "requestly/requestly". GitHub.
65. ^ Requestly Pricing
66. ^ Requestly Clound Based Mock Server
67. ^ "Matthewgallina/Smockin". GitHub. 27 March 2022.
68. ^ Smocker License
69. ^ Smocker documentation
70. ^ SmartMock.io Terms of Use
71. ^ SmartMock.io pricing
72. ^ "Specmatic". GitHub.
73. ^ simulado license
74. ^ SoapUI Licence
75. ^ a b c d e SoapUI MockServer documentation
76. ^ "Speedscale Free Trial Version". Speedscale. Retrieved 2024-03-20.
77. ^ "Technology Support | Speedscale Docs". docs.speedscale.com. Retrieved 2024-03-20.
78. ^ "How Traffic Recording Works". Speedscale. Retrieved 2024-03-20.
79. ^ Prism Licence
80. ^ Stoplight Pricing
81. ^ a b c d Traffic Parrot home page
82. ^ Traffic Parrot pricing
83. ^ Traffic Parrot data sheet
84. ^ Traffic Parrot list of beta features
85. ^ Traffic Parrot Dynamic Responses Documentation
86. ^ Traffic Parrot is compatible with Docker, Kubernetes and Openshift
87. ^ a b c d https://www.tricentis.com/products/tricentis-test-automation
88. ^ https://documentation.tricentis.com/tricentis_cloud/en/content/topics/sim_get_started.htm
89. ^ Wilma License
90. ^ Wilma Feature list
91. ^ Docker images of Wilma
92. ^ WireMock License
93. ^ WireMock Cloud
94. ^ WireMock.Net License
95. ^ WireMock.Net .Net Core 2.0 Linux image
96. ^ WireMock.Net .Net Core 2.0 windows-nano image
97. ^ Wiresham License