/poplar

a performance testing framework

Primary LanguageGoApache License 2.0Apache-2.0

poplar -- Golang Performance Test Toolkit

Overview

Poplar is a set of tools for running and recording results for performance tests suites and benchmarks. It provides easy integration with a number of loosely related tools:

  • ftdc is a compression format for structured and semi-structured timeseries data. Poplar provides service integration for generating these data payloads.
  • cedar is a service for collecting and processing data from builds. Poplar provides a client for uploading test results to cedar from static YAML or JSON data.

Additionally, poplar provides a complete benchmark test harness with integration for collecting ftdc data and sending that data to cedar, or reporting it externally.

Some popular functionality is included in the curator tool, as curator poplar.

Development

Poplar uses Go modules. To download the modules

make mod-tidy

All project automation is managed by a makefile, with all output captured in the build directory. Consider the following operations:

make build                   # runs a test compile
make test                    # tests all packages
make lint                    # lints all packages
make test-<package>          # runs the tests only for a specific packages
make lint-<package>          # lints a specific package
make html-coverage-<package> # generates the HTML coverage report for a specific package
make html-coverage           # generates the HTML coverage report for all packages

The buildsystem also has a number of flags, which may be useful for more iterative development workflows:

RUN_TEST=<TestName>   # specify a test name or regex to run a subset of tests
RUN_COUNT=<num>       # run a test more than once to isolate an intermittent failure
RACE_DETECTOR=true    # run specified tests with the race detector enabled.

Documentation

See the API docs for complete documentation.