Главный конфигурационный файл в котором описывается всё необходимое для исполнения одного теста, тест может содердать в себе несколько стрельб.
Прочитать про микроформат YAML: link1 link2 link3
title: # <Словарь>, Раздел содержащий общие сведенья о тесте
task: 'SOMEPROJ-123' # <Строка>, номер таска из issue tracker(Jira, Redmine, etc)
test_name: 'new version; load test; check cpu la' # <Строка>, Имя теста
test_dsc: 'The new version of index builder' # <Строка>, краткое описание теста
fire: # <Список>, содержит словари, каждый из которых - стрельба.
-
name: 'app1' # <Строка>, имя стрельбы
tag: ['SOMEPROJ', 'base-search', 'regression'] # <Список>, теги для последующей навигации.
# scheme
network_proto: 'ipv4' # <Строка>, протокол сетевого уровня. На данный момент или ipv4 или ipv6.
transport_proto: 'tcp' # <Строка>, протокол траспортного уровня или уровня представления. На данный момент или TCP или SSL.
addr: '8.8.8.8' # <Строка>, доменное имя или ip адрес целевого хоста.
time_periods: [10, 45, 50, 100, 150, 300, 500, '1s', 1500, '2s', '3s', '10s'] # <Список>, периоды времени по которым будут агрегироваться результаты
load: [['line', 1000, 5000, '10m'], ['const', 5000, '30m'], ['step', 1, 51, 5, '2m']] # <Список>, последовательно перечисленные схемы нагрузки, определяют длительность и интенсивность.
offset: 133 # <Целое число>, номер миллисекунды от начала теста в которую будет подан первый запрос из схемы.
input_file: '/Users/gkomissarov/docs/vcs/my-github/firebat-console/test.ammo' # <Строка>, Абсолютный путь до файлы с запросами(ammo file).
input_format: 'plain' # <Строка>, формат файла с запросами. На данный момент, только, 'plain'.
loop_ammo: 1 # <Булевое значение>, Если запросов в ammo файле недостаточно для покрытия схемы нагруки, использоваться ли в бесконечном цикле те же запросы.
instances: 1000 # <Целое число>, Кол-во обработчиков(воркеров) приложения Phantom. Читай `документацию фантома <http://phantom-doc-ru.readthedocs.org/en/latest/writing-a-phantom-conf.html#phantom-conf>`_
# logs
writelog: 1 # <Булевое значение>, пока не используется
savelog: 0 # <Булевое значение>, пока не используется
saveammo: 0 # <Булевое значение>, пока не используется
-
name: 'app2'
tags: ['SOMEPROJ', 'base-search', 'regression']
# scheme
network_proto: 'ipv4'
transport_proto: 'tcp'
addr: 'www.google.com:8080'
#addr: 'www.ya.ru:8080'
#addr = b.g.f.c.d:8080
time_periods: [10, 45, 50, 100, 150, 300, 500, '1s', 1500, '2s', '3s', '10s']
load: ['line(1,10,2m)', 'const(10,90m)']
input_file: 'simple_get1.ammo'
input_format: 'plain'
instances: 1000
# logs
writelog: 1
savelog: 0
saveammo: 0
Имя параметр | Тип | Используется | Обязательный | По умолчанию | Толкование |
---|---|---|---|---|---|
title | Словарь | Да | Да | - | Раздел содержащий общие сведенья о тесте. |
task | Строка | Да | Да | - | номер задачи из issue tracker(Jira, Redmine, Basecamp, etc). |
test_name | Строка | Да | Да | - | Имя теста. |
test_dsc | Строка | Да | Нет | ‘Fix Me’ | Краткое описание теста. |
fire | Список словарей | Да | Да | - | Список содержащий словари, каждый из которых - стрельба. |
name | Строка | Да | Да | - | Имя стрельбы. |
tag | Список строк | Нет | Нет | - | Теги для более удобной работы с результатами. |
network_proto | Строка | Да | Нет | ‘ipv4’ | Протокол сетевого уровня модели OSI. |
transport_proto | Строка | Да | Нет | ‘tcp’ | Протокол транспортного уровня модели OSI. |
addr | Строка | Да | Да | - | Арес тестируемого хоста. |
time_periods | Список | Да | Да | - | Периоды времени по которым будут агрегироваться результаты. |
load | Список списков | Да | Да | - | Последовательно перечисленные схемы нагрузки, определяют длительность и интенсивность. |
offset | Целове число | Да | Нет | 0 | Номер миллисекунды от начала теста в которую будет подан первый запрос из схемы. |
input_file | Строка | Да | Нет | - | Абсолютный путь до файлы с запросами(ammo file). |
input_format | Строка | Нет | Нет | ‘plain’ | Формат файла с запросами. |
loop_ammo | Булевое значение | Да | Нет | 1 | Если запросов в ammo файле недостаточно для покрытия схемы нагруки, использоваться ли в бесконечном цикле те же запросы. |
instances | Целове число | Да | Нет | 1000 | Кол-во обработчиков(воркеров) приложения Phantom. |
writelog | Булевое значение | Нет | Нет | 1 | - |
savelog | Булевое значение | Нет | Нет | 1 | - |
saveammo | Булевое значение | Нет | Нет | 1 | - |
network_proto - может принимать значения ipv4 или ipv6
transport_proto - может принимать значения tcp или ssl
addr - может быть доменным именем, если его можно разрезольвить в ipv4 адрес или соотвествующим сетевому протоклу адресом. Порт по умолчанию 80.
Схемы нагрузки:
input_file - перекрывается аргументом -a AMMO_FILE, --ammo AMMO_FILE скрипта fire при запуске.