local:docker runner of Testground enables you to test distributed/p2p systems on your local machine with precisely the same build artifacts as the
cluster:k8s runner. The use of Docker images as a build target ensures plans are built the same way with the same build environment even when built on a different machine or a different OS.
The overall performance of the
local:docker runner depends highly on the machine running the tests, though we are frequently able to run tests with 100+ instances without issue using commonly-available laptops or desktop computers.
Aside from the sidecar, which is built separately, any auxiliary Docker images are downloaded if needed. This is what you need to get started:
A laptop or desktop with reasonable hardware specs. To be able run simulations of a reasonable size, we recommend at least the following:
50GB available storage
The following software setup is required:
a non-root account with write access to the Docker socket.
Sidecar container installation. See installation instructions in Getting Started
When Testground runs its first plan, several additional containers will be downloaded and started. Here is an overview of everything Testground adds to your system
This network is used only during the build phase.
Test plan containers are not attached to this network.
This network is used by test plan containers to communicate with the sync service and the host.
Though this is a public-facing network, plan containers cannot access the internet through this network because routes are removed.
Plan containers communicate with each other over this network.
This is the network used for testing.
The sidecar modifies the link quality and performance to simulate real-world conditions.
This container is attached to the
It speeds up Go builds.
It is optional.
This is the backend database of the Testground sync service.
Visualisation software that Testground uses for its dashboards.
Time-series database that Testground uses for various diagnostics and events.