Skip to content

m0sth8/pandora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pandora

A load generator in Go language.

Install

Compile a binary with go tool:

go get github.com/yandex/pandora
go build github.com/yandex/pandora

Run this binary with your .json config (see examples):

./pandora myconfig.json

Or let Yandex.Tank make it easy for you.

Get help

Ask direvius@ in Yandex.Tank's chat room ![Gitter](https://badges.gitter.im/Join Chat.svg)

Extension points

You can write plugins with the next extension points:

ammo.Provider aggregate.ResultListener limiter.Limiter gun.Gun

Build tags

If you don want to build pandora without http gun:

go build -tags 'noHttpGun' github.com/yandex/pandora

If you don want to build pandora without spdy gun:

go build -tags 'noSpdyGun' github.com/yandex/pandora

Basic concepts

Architectural scheme

See architectural scheme source in docs/architecture.graphml. It was created with YeD editor, so you’ll probably need it to open the file.

Architectural scheme

Pandora is made of components. Components talk to each other over the channels. There are different types of components.

Component types

Ammo provider and decoder

Ammo decoder knows how to make an ammo object from an ammo file or other external resource. Ammo provider uses a decoder to decode ammo and passes ammo objects to the Users.

User pool

User pool controls the creation of Users. All users from one user pool will get ammo from one ammo provider. User creation schedule is controlled with Startup Limiter. All users from one user pool will also have guns of the same type.

Limiters

Limiters are objects that will put messages to its underlying channel according to a schedule. User creation, shooting or other processes thus can be controlled by a Limiter.

Users and Guns

User takes an ammo, waits for a limiter tick and then shoots with a Gun it has. Guns are the tools to send a request to your service and measure the parameters of the response.

Result Listener

Result listener's task is to collect measured samples and save them somewhere.

About

A load generator in Go language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.9%
  • Shell 2.1%
  • Makefile 2.0%