Comparison of API simulation tools

Last updated

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 FreeSupported protocols and APIsHas a GUI Scriptable/Programmable Docker supportCloud offering
API SimulatorNo; Proprietary [4] YesHTTP/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] YesHTTP(S); STOMP, WSDL; Swagger; OpenAPI; CobolYes [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 tunnelingYesYes [16] NoYes
CamouflageYes; MIT [17] YesHTTP(S), HTTP/2 gRPC, Websockets, ThriftYes [18] Yes [19] Yes [20] No
Castle MockYes; Apache 2 [21] YesHTTP(S)YesYesYesNo
Charles ProxyNo; Proprietary [22] NoHTTP(S)YesNoNoNo
Ekko ProxyNo; ProprietaryYes (non commercial use) [23] HTTP(S), JDBC; WSDL, Swagger, OpenApi, JWT.Yes [24] Yes (Scriptable)YesNo
HAM Yes; MITYesHTTP(S), SOAP, MITM/Proxing, Swagger, XML, JSON, Jackson-Smile, Brotli, Record, Replay, Automatic tests, Schema verification, JDBC, MongoDbYes (Web)Yes (Dynamic Javascript and Java Plugins)YesNo
HoverflyYes; Apache 2 [25] YesHTTP(S)YesYesYesYes [26]
HTTP ToolkitYes; AGPL [27] Yes (Hobbyist Edition) [28] HTTP(S)YesNoNoNo
Int4 IFTTNo; ProprietaryNoHTTP(S), Middleware virtualization: SAP Process Orchestration, SAP Intelligent Suite, Dell Boomi, Software AG Webmethods, SAP IDOCsYesYesNoNo
KarateYes; MIT [29] YesHTTP(S), Java interop [30] NoYes [30] NoNo
Microcks Yes; Apache 2 [31] YesHTTP(S), SOAP, gRPC, GraphQL, AsyncAPI [32] YesYesYesNo
MockadilloNo; ProprietaryNoHTTP(S) [33] YesYesNoYes
MockletsNo; Proprietary [34] YesHTTP(S)YesNoNoYes [35]
Mockoon Yes; MIT [36] YesHTTP(S) [37] YesYesYes [38] No
MockServerYes; Apache 2 [39] YesHTTP(S)Yes [40] YesYesNo
mock.qa No; ProprietaryYes (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] )NoYes
MountebankYes; MIT [51] YesHTTP(S), TCP, SMTP [52] NoYes [53] Yes [54] No
NetOcean No; ProprietaryNoWeb 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

YesYesYesYes
Parasoft Virtualize No; ProprietaryYes (Community Edition) [55] AMQP, FIX, FTP, HTTP(S), ISO 8583, JMS,
JDBC, MQ, MQTT, .NET WCF, RabbitMQ, SAP, TCP/IP, etc. [56]
YesYesYes [57] Yes
Postman No; ProprietaryYes (Free Edition) [58] HTTP(S)YesYes (JSON Examples)NoYes
ProxyMan No; ProprietaryYes, [59] (Limited)HTTP(S), WebsocketsYesYes [60] NoNo
QuickMockerNo; ProprietaryYes (Free Subscription) [61] HTTP(S)YesYes [62] NoYes
RapidmockNo; Proprietary [63] Yes (Free Edition)HTTP(S)YesNoNoYes
Requestly Yes; GPL v3.0 [64] Yes [65] HTTP(S)YesYesNoYes [66]
sMockinYes; Apache 2 [67] YesHTTP, Websockets, Server Side Events, plus tools for real time monitoring & live response modificationYesYesYesNo
SmockerYes; MIT [68] YesHTTP(S) [69] YesYesYesNo
SmartMock.ioNo; Proprietary [70] Yes [71] HTTP(S)YesYesNoYes
specmatic.in Yes; MIT [72] YesHTTP(S), Swagger, OpenAPI, WSDL, Kafka (WIP)NoYesNoNo
simuladoYes; MIT [73] YesHTTP(S)NoYesYesYes
SoapUI MockServerYes; EUPL [74] YesHTTP(S) [75] Yes [75] No [75] No [75] No [75]
Speedscale No; ProprietaryYes, (Free Trial) [76] HTTP(S), gRPC, GraphQL webservices, Message queues, OSS Databases [77] YesNo, Not required. Traffic recording-based [78] YesYes
StoplightYes; Apache 2 [79] Yes (Free Edition) [80] HTTP(S) and generate mocks directly from OpenAPIYesYesYesYes
Traffic ParrotNo; 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]
tweakNo; ProprietaryYesHTTP(S)YesNoNoNo
Tricentis API SimulationNo; ProprietaryYes(Free Edition) [87] Http(s), AmazonSqs, AMQP, AzureServiceBus, Files, IbmMQ, Kafka, RabbitMQ, SolaceYes [87] Yes [87] Yes [88] Yes [87]
WilmaYes; GPL v3.0 [89] Yes [90] HTTP(S)YesYesYes [91] No
WireMockYes; Apache 2 [92] YesHTTP(S), gRPC, GraphQLYesYesYesYes [93]
WireMock.NetYes; Apache 2 [94] YesHTTP(S)NoYesYes [95] [96] No
WireshamYes; Apache 2 [97] YesTCPNoYesNoNo

See also

Related Research Articles

SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded. A SOCKS server accepts incoming client connection on TCP port 1080, as defined in RFC 1928.

Selenium is an open source umbrella project for a range of tools and libraries aimed at supporting browser automation. It provides a playback tool for authoring functional tests across most modern web browsers, without the need to learn a test scripting language. It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including JavaScript (Node.js), C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. Selenium runs on Windows, Linux, and macOS. It is open-source software released under the Apache License 2.0.

<span class="mw-page-title-main">YUI Library</span>

The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several cores CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.

<span class="mw-page-title-main">Robotics simulator</span> Simulator to create applications for physical robots

A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot without modification.

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

Parasoft SOAtest is a testing and analysis tool suite for testing and validating APIs and API-driven applications. Basic testing functionality include functional unit testing, integration testing, regression testing, system testing, security testing, simulation and mocking, runtime error detection, web UI testing, interoperability testing, WS-* compliance testing, and load testing.

Bitbucket is a Git-based source code repository hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of private repositories.

<span class="mw-page-title-main">Vaadin</span>

Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.

In software engineering, service virtualization or service virtualisation is a method to emulate the behavior of specific components in heterogeneous component-based applications such as API-driven applications, cloud-based applications and service-oriented architectures. It is used to provide software development and QA/testing teams access to dependent system components that are needed to exercise an application under test (AUT), but are unavailable or difficult-to-access for development and testing purposes. With the behavior of the dependent components "virtualized", testing and development can proceed without accessing the actual live components. Service virtualization is recognized by vendors, industry analysts, and industry publications as being different than mocking. See here for a Comparison of API simulation tools.

<span class="mw-page-title-main">IcCube</span>

icCube is known for its embeddable data analytics and visualization software platform tailored specifically for B2B Software-as-a-Service (SaaS) applications, i.e. Embedded analytics.

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc.

The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing web services. Previously part of the Swagger framework, it became a separate project in 2015, overseen by the OpenAPI Initiative, an open-source collaboration project of the Linux Foundation.

Kubernetes is an open-source container orchestration system for automating software deployment, scaling, and management. Originally designed by Google, the project is now maintained by a worldwide community of contributors, and the trademark is held by the Cloud Native Computing Foundation.

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

Wilma is a Service virtualization software tool that computer programmers and testers use for developing and testing other software. It sits between software components, software services, microservices, as a transparent proxy, and captures the communication traffic between the software components. Based on its actual configuration, evaluates the captured messages and decides between proxying the request or providing response by itself, as a service stub. Therefore, it is a combined Transparent Proxy and Service Stub. It is written in Java, and Open Sourced under the license GPL.

<span class="mw-page-title-main">RESTHeart</span>

RESTHeart is a Java open source Low code micro-services Open Platform.

MinIO is a High-Performance Object Storage system released under GNU Affero General Public License v3.0. It is API compatible with the Amazon S3 cloud storage service. It is capable of working with unstructured data such as photos, videos, log files, backups, and container images with the maximum supported object size being 50TB.

<span class="mw-page-title-main">ZeroTier</span> Software company based in California

ZeroTier, Inc. is a software company with a freemium business model based in Irvine, California. ZeroTier provides proprietary software, SDKs and commercial products and services to create and manage virtual software-defined networks. The company's flagship end-user product ZeroTier One is a client application that enables devices such as PCs, phones, servers and embedded devices to securely connect to peer-to-peer virtual networks.

References

  1. 1 2 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. 1 2 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. 1 2 3 4 5 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. 1 2 3 4 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. https://documentation.tricentis.com/tricentis_cloud/en/content/topics/sim_get_started.htm
  88. Wilma License
  89. Wilma Feature list
  90. Docker images of Wilma
  91. WireMock License
  92. WireMock Cloud
  93. WireMock.Net License
  94. WireMock.Net .Net Core 2.0 Linux image
  95. WireMock.Net .Net Core 2.0 windows-nano image
  96. Wiresham License