Testground
GitHubGo SDKInfra
master
master
  • README
  • Table of contents
    • What is Testground?
      • Community
    • Concepts and architecture
      • Test plans and test cases
      • Daemon and client
      • Synchronization service
      • Networking
      • Sidecar
      • Builders
      • Runners
      • Runtime environment (runenv)
      • Client-Server communication
    • Getting started
    • Writing test plans
      • Quick start
      • Understanding the test plan manifest
      • Parameters and test cases
      • Keeping instances in sync
      • Communication between instances
      • Observability, assets and metrics
    • Managing test plans
    • Running test plans
    • Traffic shaping
    • Analyzing test run results
      • Capturing profiles
    • Debugging test plans
    • Docker Settings
    • Featured projects
  • Runner library
    • local:exec
    • local:docker
      • System overview
      • Runner flags
      • Troubleshooting
    • cluster:k8s
      • System overview
      • How to create a Kubernetes cluster for Testground
      • Monitoring and Observability
      • Understanding Testground performance on Kubernetes
      • Troubleshooting
  • Builder Library
    • docker:go
    • exec:go
    • docker:generic
Powered by GitBook
On this page
  • Background
  • Dependencies
  • Testground-supplied containers
  1. Runner library
  2. local:docker

System overview

Background

Using the 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.

Dependencies

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:

    • 8GB memory

    • 50GB available storage

  • The following software setup is required:

    • Docker daemon

    • a non-root account with write access to the Docker socket.

    • Sidecar container installation. See installation instructions in Getting Started

Testground-supplied containers

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

  • Docker networks:

    • testground-build

      • This network is used only during the build phase.

      • Test plan containers are not attached to this network.

    • testground-control

      • 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.

    • testground-data

      • 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.

  • Docker containers:

    • goproxy

      • This container is attached to the build network.

      • It speeds up Go builds.

      • It is optional.

    • redis

      • This is the backend database of the Testground sync service.

    • grafana

      • Visualisation software that Testground uses for its dashboards.

    • influxdb

      • Time-series database that Testground uses for various diagnostics and events.

Previouslocal:dockerNextRunner flags

Last updated 5 years ago