This repo contains a LocalStack Extension that facilitates developing WireMock-based applications locally.
The extension supports two modes:
- OSS WireMock: Uses the open-source
wiremock/wiremockimage (default) - WireMock Runner: Uses
wiremock/wiremock-runnerwith WireMock Cloud integration (requires API token)
- Docker
- LocalStack Pro (free trial available)
localstackCLImake- WireMock CLI (for WireMock Runner mode)
This extension can be installed directly from this Github repo via:
localstack extensions install "git+https://github.com/localstack/localstack-extensions.git#egg=localstack-wiremock&subdirectory=wiremock"To install the extension into LocalStack in developer mode, you will need Python 3.11, and create a virtual environment in the extensions project.
In the newly generated project, simply run
make installThen, to enable the extension for LocalStack, run
localstack extensions dev enable .You can then start LocalStack with EXTENSION_DEV_MODE=1 to load all enabled extensions:
EXTENSION_DEV_MODE=1 localstack startStart LocalStack without any special configuration:
localstack startThe WireMock server will be available at http://wiremock.localhost.localstack.cloud:4566.
You can import stubs using the WireMock Admin API (assuming a stubs.json exists in the local working directory):
curl -X POST -H "Content-Type: application/json" \
--data-binary "@stubs.json" \
"http://wiremock.localhost.localstack.cloud:4566/__admin/mappings/import"To use WireMock Runner with WireMock Cloud, you need:
- A WireMock Cloud API token
- A
.wiremockdirectory with your mock API configuration
- Sign up at WireMock Cloud
- Go to Settings → API Tokens
- Create a new token
First, create a Mock API in WireMock Cloud, then pull the configuration locally:
# Install WireMock CLI if not already installed
npm install -g @wiremock/cli
# Login with your API token
wiremock login
# Pull your Mock API configuration
# Find your Mock API ID from the WireMock Cloud URL (e.g., https://app.wiremock.cloud/mock-apis/zwg1l/...)
wiremock pull mock-api <mock-api-id>This creates a .wiremock directory with your wiremock.yaml configuration.
LOCALSTACK_WIREMOCK_API_TOKEN="your-api-token" \
LOCALSTACK_WIREMOCK_CONFIG_DIR="/path/to/your/project" \
localstack startEnvironment Variables:
WIREMOCK_API_TOKEN: Your WireMock Cloud API token (required for runner mode)WIREMOCK_CONFIG_DIR: Path to the directory containing your.wiremockfolder (required for runner mode)WIREMOCK_IMAGE: Custom Docker image name for the Wiremock OSS image (default:wiremock/wiremock)WIREMOCK_IMAGE_RUNNER: Custom Docker image name for the Wiremock Cloud runner image (default:wiremock/wiremock-runner)
Note: When using the LocalStack CLI, prefix environment variables with LOCALSTACK_ to forward them to the container.
See the sample-app-runner/ directory for a complete example using Terraform that demonstrates:
- Creating an API Gateway
- Lambda function that calls WireMock stubs
- Integration testing with mocked external APIs
0.1.1: Add environment variables to customize the WireMock image names0.1.0: Initial release of the extension
This project is licensed under the Apache License, Version 2.0.