Draft:WireMock
Submission declined on 19 January 2024 by Sirdog (talk).
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
|
Submission declined on 11 July 2023 by Festucalex (talk). This submission is not adequately supported by reliable sources. Reliable sources are required so that information can be verified. If you need help with referencing, please see Referencing for beginners and Citing sources. This draft's references do not show that the subject qualifies for a Wikipedia article. In summary, the draft needs multiple published sources that are: Declined by Festucalex 10 months ago.
|
- Comment: While after the copyright violations are resolved by an administrator the nominator may procedurally immediately re-submit, I would recommend not doing so. I would advise reading up on Wikipedia:Notability, Wikipedia:Reliable sources, and Wikipedia:Simplified Manual of Style. —Sirdog (talk) 06:26, 19 January 2024 (UTC)
- Comment: No independent sources. Please read WP:INDEPENDENT, edit accordingly, and resubmit. 〜 Festucalex • talk 10:23, 11 July 2023 (UTC)
Original author(s) | Tom Akehurst |
---|---|
Initial release | 2011 |
Repository | https://github.com/wiremock |
Written in | Java |
Platform | Java 11, Java 17 |
Type | Integration Testing, API |
License | Apache License v2 |
Website | https://wiremock.org/ |
(aka API mocking, and hence the name). It is used for Integration Testing of various application interfaces, especially REST API..[1][2]
Features[edit]
WireMock can run in many Unit testing and Integration testing frameworks, including JUnit, TestNG, Testcontainers, Spock and others. It can be also deployed as a standalone service in Docker [3], Kubernetes[4] or as a Java executable.
Key features include:
- Stubbing and Mocking. WireMock supports HTTP response stubbing, allowing the definition of expected request-response pairs known as "stubs." These stubs simulate the behavior of external services.
- Request Verification. It offers capabilities for verifying incoming HTTP requests by specifying matching criteria such as HTTP method, URL, headers, and request body.
- Proxy and Intercept. WireMock enables proxying and interception of HTTP requests, facilitating the analysis of request and response traffic.
- Record and Playback. It supports the recording of actual HTTP interactions and their subsequent playback, facilitating the creation of stubs based on real-world data.
- Stateful behavior simulation. It can simulate various response sequences as scenarios or define complex dynamic behavior as a finite state machine[5].
WireMock uses a custom configuration format, but the definitions can be imported from other formats like OpenAPI[6].
History[edit]
WireMock was created in 2011 by Tom Akehurst when working for ioko. The project was released to the public on the 9th of October 2011 under the Apache License v2. It quickly gained traction in the Java community and got adopted in many projects. It was referenced by many sites, including an introduction guide on Baeldung[7].
In 2016, WireMock 2.0 was released. Approximately at the same time, Docker images were introduced to the project by Rodolphe Chaigneau[8]. Support for Android was also introduced and demonstrated by Sam Edwards[9].
In 2019, a first book on WireMock for Java developers was published by Dilip Sundarraj[10]. The same year, Andrew Morgan published a full WireMock 2 course on Pluralsight[11]
In 2022, a new WireMock Inc. company was formed around WireMock, with Tom Akehurst becoming its CTO and Uri Maoz as the CEO. The company builds WireMock Cloud - a SaaS solution and a developer portal for API development productivity platform. In May 2023 WireMock Inc. received a seed investment round and re-emphasized its commitment to the open source ecosystem and growing the community [12]. In June 2023, WireMock Inc became a member of the OpenAPI Initiative[13].
In June 2023, a formal governance model was introduced in the project as part of the effort to grow the contributor community and the ecosystem. A public roadmap was published for the project [14]. Tom Akehurst became the BDFL of the project, a charter of co-maintainers was introduced.
In September 2023, WireMock 3 was released [15]. This release includes many new request filters and other features, drop Java 1.8 support, and reduce the dependencies footprint by using new Java capabilities. There are additional initiatives in preview, including support for gRPC and GraphQL[16] mocking, Testcontainers modules, etc.
In October 2023, WireMock Inc and AtomicJar announced partnership focusing on the Testcontainers ecosystem and announced inclusion if the module into the official program[17]. The WireMock module for Testcontainers includes support for Java, Golang, Python and Node.js. This month, WireMock has also officially participated in Hacktoberfest. The first ever in-person hack days was organized by WireMock in collaboration with the London Java Community and MLH [18].
In December 2023, the WireMock 3 general availability availability was announced [19]. The 4x GitHub contributors growth in 2023 was announced by one of the maintainers[20]
Ecosystem[edit]
WireMock has a diverse ecosystem of extensions, adapters and integrations for different technologies. These allow WireMock to be used with different programming languages and technologies, especially within the Java Virtual Machine ecosystem.
Popular integrations include:
- Spring Boot[21].
- Spring Cloud Contract[22]
- Testcontainers modules[23]
- Kotest - test framework for Kotlin programming language
- Quarkus extension[24]
- Robot Framework library for Python projects (GitHub Repo)
Other Implementations[edit]
WireMock has many 3rd-party implementations for different technology stacks. These implementations are maintained outside the WireMock community governance. They may or may not be fully compatible with WireMock’s official implementation in Java.
Popular server implementations:
- WireMock.NET - for the .NET ecosystem[25]
- WireMock.RS - Server implementation in Rust offering a similar functionality together with a standalone stubr project[26]
- WireMock Cloud - private source SaaS service by WireMock Inc.
There are many other implementations using WireMock Docker and providing wrappers for it, for example Python[27] Golang or JavaScript. There is ongoing effort to consolidate these implementations with help of Testcontainers.
In addition to the extensions, there is a demonstrated use of WireMock with popular development tools and frameworks, for example Micronaut[28] or Quarkus[29]
Education Use[edit]
Beyond its practical applications, WireMock serves as an educational tool, providing developers and testers with insights into API testing, mocking, and the emulation of HTTP interactions.
See Also[edit]
- WireMock Documentation
- API Testing
- Comparison of API simulation tools
- MockServer - another popular API simulation tool
References[edit]
- ^ "WireMock Ecosystem and Integrations". WireMock Documentation. Retrieved Dec 30, 2023.
- ^ "WireMock Overview". WireMock Documentation. Retrieved June 26, 2023.
- ^ Berar, George. "Speed Up Backend Development With WireMock And Docker". Blog. Retrieved Dec 30, 2023.
- ^ Lee, Kent. "A Helm chart for WireMock deployment on Kubernetes". Blog. Retrieved Dec 30, 2023.
- ^ "Using WireMock Scenarios". Baeldung. Retrieved Nov 14, 2023.
- ^ Tanna, Jamie. "Generate a running mock server from an OpenAPI specification using Prism". Blog. Retrieved Dec 30, 2023.
- ^ "Introduction to WireMock". Baeldung. Retrieved Nov 14, 2023.
- ^ Andrakakis, Jim. "Design by Contract Tutorial: Mock your interfaces using Swagger, WireMock, Docker, Azure DevOps, Terraform AND Azure". Retrieved Nov 14, 2023.
- ^ Edwards, Sam. "Running WireMock on Android". Retrieved Nov 14, 2023.
- ^ Sundarraj, Dilip. "WireMock for Java Developers". Packt Publishing. Retrieved Nov 14, 2023.
- ^ Morgan, Andrew. "Introduction to WireMock 2". Online Course on Pluralsight. Retrieved Nov 14, 2023.
- ^ Miller, Ron. "WireMock lands $6.5M to help developers build and test on mock APIs". TechCrunch. Retrieved June 26, 2023.
- ^ "WireMock, Venture Funded Open Source API Mock Platform, Joins OpenAPI Initiative as New Member". OpenAPI Initiative. Retrieved Dec 30, 2023.
- ^ "WireMock public roadmap". WireMock Community. Retrieved June 26, 2023.
- ^ "WireMock 3". WireMock - GitHub Issue. Retrieved June 26, 2023.
- ^ Hayashi, Eiki. "Wiremock の GraphQL Extension". Blog post. Retrieved Nov 11, 2023.
- ^ "WireMock joins the Testcontainers Official Modules Program". AtomicJar Blog. Retrieved Nov 11, 2023.
- ^ "Hacktoberfest 2023 in London: Learn WireMock and contribute to open source". Major League Hacking Event Page. Retrieved Nov 11, 2023.
- ^ Nenashev, Oleg. "WireMock 3 goes GA". WireMock Blog. Retrieved Dec 30, 2023.
- ^ Nenashev, Oleg. "WireMock New Year Summary". LinkedIn Post. Retrieved Dec 30, 2023.
- ^ Walkowiak, Maciej. "WireMock Spring Boot". GitHub. Retrieved June 26, 2023.
- ^ "Spring Cloud Contract WireMock". Spring Cloud website. Retrieved June 26, 2023.
- ^ "Testcontainers Java module for WireMock". GitHub Repository. Retrieved June 26, 2023.
- ^ "Quarkus WireMock". Quarkiverse Documentation. Retrieved Nov 14, 2023.
- ^ Piątek, Cezary. "WireMock.NET - Introduction". Blog. Retrieved Nov 14, 2023.
- ^ Palmieri, Luca. "Rust Dublin March 2021 remote meetup - wiremock-rs". Meetup Recording. Retrieved Dec 30, 2023.
- ^ "Python library for WireMock". GitHub Repository. Retrieved June 26, 2023.
- ^ "Testing REST API Integrations Using Testcontainers with WireMock or MockServer". Micronaut Official Documentation. Retrieved Nov 14, 2023.
- ^ Porter, Iain. "Building a Resilient Microservice with Quarkus and Wiremock". Blog. Retrieved Nov 14, 2023.
This submission has now been cleaned of the above-noted copyright violation and its history redacted by an administrator to remove the infringement. If re-submitted (and subsequent additions do not reintroduce copyright problems), the content may be assessed on other grounds.