Advanced usage¶
Command line options¶
Yandex.Tank has an obviously named executable yandex-tank
.
Here are available command line options:
-h, –help: | show command line options |
---|---|
-c CONFIG, –config=CONFIG: | |
Read options from yaml file. It is possible to set multiple configuration files by specifying the option serveral times. Default: |
|
-i, –ignore-lock: | |
Ignore lock files. |
|
-f, –fail-lock: | Don’t wait for lock file, quit if it’s busy. Default behaviour is to wait for lock file to become free |
-l LOG, –log=LOG: | |
Main log file location. Default: |
|
-m, –manual-start: | |
Tank will prepare for test and wait for Enter key to start the test. |
|
-n, –no-rc: | Don’t read |
-o OPTION, –option=OPTION: | |
Set an option from command line. Options set in cmd line override those have been set in configuration files. Multiple times for multiple options. Format: Example: |
|
-s SCHEDULED_START, –scheduled-start=SCHEDULED_START: | |
Run test on specified time, date format YYYY-MM-DD hh:mm:ss or hh:mm:ss |
|
-q, –quiet: | Only print WARNINGs and ERRORs to console. |
-v, –verbose: | Print ALL, including DEBUG, messages to console. Chatty mode. |
Add an ammo file name as a nameless parameter, e.g.:
yandex-tank ammo.txt
or yandex-tank ammo.gz
Advanced configuration¶
Configuration files organized as yaml-files. Those are files partitioned into named sections that contain ‘name: value’ records.
Example:
phantom:
address: example.com:80
load_profile:
load_type: rps
schedule: const(100,60s)
autostop:
autostop:
- instances(80%,10)
- time(1s,10s)
Note
A common rule: options with the same name override those set before them (in the same file or not).
Default configuration files¶
Note
--no-rc
command line option disables this behavior
Yandex.Tank reads all *.yaml
from /etc/yandex-tank
directory, then a personal config file ~/.yandex-tank
.
So you can easily put your favourite settings in ~/.yandex-tank
Example: tank.artifacts_base_dir
, phantom.cache_dir
, console.info_panel_width
Multiline options¶
Use indent to show that a line is a continuation of a previous one:
autostop:
autostop:
- time(1,10)
- http(404,1%,5s)
- net(xx,1,30)
Note
Ask Yandex.Tank developers to add multiline capability for options where you need it!*
Time units¶
Default : milliseconds.
Example:
``30000 == 30s``
``time(30000,120)`` is an equivalent to ``time(30s,2m)``
Time units encoding is as following:
Abbreviation | Meaning |
---|---|
ms | millisecons |
s | seconds |
m | minutes |
h | hours |
Note
You can also mix them: 1h30m15s
or 2s15ms
.
Artifacts¶
As a result Yandex.Tank produces some files (logs, results, configs
etc). Those files are placed with care to the artifact directory. An
option for that is artifacts_base_dir
in the tank
section. It is
recommended to set it to a convenient place, for example,
~/yandex-tank-artifacts
; it would be easier to manage the artifacts
there.
load.yaml example¶
phantom:
address: "ya.ru:80"
instances: 1000
load_profile:
load_type: rps
schedule: const(1,30) line(1,1000,2m) const(1000,5m)
header_http: "1.1"
uris:
- "/"
- "/test"
- "/test2"
headers:
- "[Host: www.ya.ru]"
- "[Connection: close]"
autostop:
autostop:
- http(5xx,10%,5s)