/pandora

A load generator in Go language

Primary LanguageGoOtherNOASSERTION

Pandora

Release Release Test codecov Code lines

PkgGoDev Go Report Card Join the chat at https://gitter.im/yandex/pandora

Pandora is a high-performance load generator in Go language. It has built-in HTTP(S) and HTTP/2 support and you can write your own load scenarios in Go, compiling them just before your test.

Documentation

Documentation

How to start

Binary releases

Download available.

Building from sources

We use go 1.11 modules. If you build pandora inside $GOPATH, please make sure you have env variable GO111MODULE set to on.

git clone https://github.com/yandex/pandora.git
cd pandora
make deps
go install

Or let Yandex.Tank make it easy for you.

Extension points

You can write plugins with the next extension points:

You can also cross-compile for other arch/os:

GOOS=linux GOARCH=amd64 go build

Running your tests

Run the binary with your config (see config examples at examples):

# $GOBIN should be added to $PATH
pandora myconfig.yaml

Or use Pandora with Yandex.Tank and Overload.

Performance tests

These tests are run when a release is created from a tag. See .github/workflows/yc.yml

The scripts used to run are performance-test/automation

And the tests are in the following directory - performance-test/test-config. Where one directory is one test. Each test has a autostop point configured. When all tests pass, all their autostop points will be written in the release description.

Changelog

Install https://github.com/miniscruff/changie

You can add changie completion to you favorite shell https://changie.dev/cli/changie_completion/

Using

See https://changie.dev/guide/quick-start/

Show current version changie latest

Show next minor version changie next minor

Add new comments - changie new - and follow interface

Create changelog release file - changie batch v0.5.21

Same for next version - changie batch $(changie next patch)

Merge to main CHANGELOG.md file - changie merge