robot-piglet on arcadia
demilitarization (compare)
robot-piglet on arcadia
pandora 0.3.8 bind (compare)
robot-piglet on arcadia
Fix UpdateTest (compare)
robot-piglet on arcadia
better (compare)
robot-piglet on arcadia
Add .md extension for AUTHORS a… (compare)
robot-piglet on arcadia
YANDEXTANK-583: reincarnation o… (compare)
robot-piglet on arcadia
PR for branch feature/YANDEXTAN… (compare)
robot-piglet on arcadia
IGNIETFERRO-1816 Update Python … (compare)
robot-piglet on arcadia
YANDEXTANK-579: Single TankWork… (compare)
robot-piglet on arcadia
jmeter and base version both fi… (compare)
arcadia-devtools on arcadia
rm converter tests ref:ef1e917… (compare)
arcadia-devtools on arcadia
DTCC-910 adaptation for piglet … (compare)
arcadia-devtools on arcadia
Remove irrelevant .arcignore r… (compare)
arcadia-devtools on arcadia
Remove empty file ref:f31d8414… (compare)
arcadia-devtools on arcadia
minus Android plugin ref:34ac1… (compare)
arcadia-devtools on arcadia
Fix style ref:40a5090e43ea3f19… (compare)
arcadia-devtools on arcadia
YANDEXTANK-575: TankWorker inhe… (compare)
Коллеги, а подскажите в какую сторону копать, прикрутил telegraf, к хосту он коннектится загружает агент, потом в консоли показывается что monitoring is online:, но никаких измеряемых параметров не показывает.
При этом в файле agent_xxx.xxx.xxx.xxx.rawdata данные есть
Но в консоль ничего не выводится
phantom:
enabled: false
jmeter:
enabled: true
jmx: /opt/jmeter/testplan/XXX.jmx
args:
jmeter_path: /opt/jmeter/apache-jmeter-5.0/bin/jmeter
jmeter_ver: 5.0
ext_log: all
console:
enabled: true
telegraf:
enabled: true
package: yandextank.plugins.Telegraf
config: /home/jtank/yt_mon_teleg
конфиг мониторинга:
<Monitoring>
<Host address="xxx.xxx.xxx.xxx" interval="1">
<CPU/> <Memory/>
</Host>
</Monitoring>
@vk26 Если говорить про связку Yandex.Tank + phantom, то она не поддерживает динамические значения в url и телах запросов и изменение запросов в ходе выполнения теста. Вы должны до начала теста сгенерировать статичную ленту запросов с подставленными "рандомными" значениями вида
/users/search?name=random_string1
/users/search?name=random_string2
/users/search?name=random_string3
/users/search?name=random_string4
....
и указать ее в конфигурации теста.
При этом надо учитывать, что полученная лента является все же статичной, поэтому при повторных запусках теста с этой лентой будут прогоняться одни и те же запросы, да и в рамках одного теста при недостаточной длине ленты она может проигрываться много раз. Это может достаточно сильно влиять на результаты тестов, когда тестируемая система использует, например, кеширование результатов запросов или механизмы идемпотентных операции. Частично это можно решить бОльшим размером ленты (кстати, танк поддерживает сжатые gzip ленты) и генерацией новой ленты перед очередным запуском теста. Но все это несколько усложняет процесс тестирования.
16:33:15 [INFO] Artifacts dir: /home/jtank/logs/2020-02-05_16-33-03.234103
16:33:27 [ERROR] Test interrupted:
<class 'influxdb.exceptions.InfluxDBClientError'>: 400: {"error":"partial write: field type conflict: input field \"custom:cpu-cpu-total_usage_iowait\" on measurement \"monitoring\" is type float, already exists as type integer dropped=1"}
File "/usr/lib/python2.7/site-packages/yandextank/core/consoleworker.py", line 386, in run
self.retcode = self.core.wait_for_finish()
File "/usr/lib/python2.7/site-packages/yandextank/core/tankcore.py", line 290, in wait_for_finish
retcode = plugin.is_test_finished()
File "/usr/lib/python2.7/site-packages/yandextank/plugins/Telegraf/plugin.py", line 227, in is_test_finished
data_len = self.monitoring.poll()
File "/usr/lib/python2.7/site-packages/yandextank/plugins/Telegraf/collector.py", line 119, in poll
self.send_collected_data()
File "/usr/lib/python2.7/site-packages/yandextank/plugins/Telegraf/collector.py", line 149, in send_collected_data
listener.monitoring_data(copy.deepcopy(data))
File "/usr/lib/python2.7/site-packages/yandextank/plugins/InfluxUploader/plugin.py", line 82, in monitoring_data
for chunk in chop(data_list, self.get_option("chunk_size"))
File "/usr/lib/python2.7/site-packages/yandextank/plugins/InfluxUploader/plugin.py", line 88, in _send_monitoring
's'
File "/usr/lib/python2.7/site-packages/influxdb/client.py", line 530, in write_points
consistency=consistency)
File "/usr/lib/python2.7/site-packages/influxdb/client.py", line 598, in _write_points
protocol=protocol
File "/usr/lib/python2.7/site-packages/influxdb/client.py", line 343, in write
headers=headers
jtank@TestingGround ~]$ yandex-tank -c ./yandex_tank_jmeter_influx.yaml
No handlers could be found for logger "netort.resource"
14:40:02 [ERROR] Config validation error:
Validation error:
influx:
grafana_dashboard:
- unknown field
grafana_root:
- unknown field
1.12.х
, то велика вероятность, что полей графаны в конфиге плагина influx уже нет из-за его переписывания в рамках этого коммита (https://github.com/yandex/yandex-tank/commit/5ff33778e930e45ca996f1f63386896fd9015e8c#diff-a206906e042101779559a43db3a6a968), что отражено в документации, которая в репозитории (https://github.com/yandex/yandex-tank/blob/develop/docs/core_and_modules.rst#influxdb ). Попробуйте, версию 1.11.x
, там эти параметры есть
Всем привет, может кто скинуть готовый-рабочий пример, хотя бы с одним запросом, без всяких мониторингов (хочу просто запустить и посмотреть, может пойму так, чем через туториал)
Что-то типа этого (пытался на juice-shop.herokuapp.com проверить)
load.yaml
phantom:
address: 52.209.151.97:443
ssl: true
load_profile:
load_type: rps
schedule: const(1, 7s)
ammofile: /var/loadtest/ammo_local.txt
ammo_type: uri
ammo_local.txt
[Host: 52.209.151.97]
[Connection: close]
[User-Agent: Tank]
/rest/products/search?q=
Я как только ни пробовал, в ответ получаю 502, 500, 404, 400, но ни как не 200
@leha0794 тут немного не верно созданы файлы. в файле ammo_local.txt не должно быть header-ов. их надо прописывать в load.yaml. сам же файл ammo_local.txt должен содержать оставшуюся часть запроса без домена.
load.yaml
phantom:
address: 52.209.151.97:443
ssl: true
load_profile:
load_type: rps
schedule: const(1, 7s)
ammofile: /var/loadtest/ammo_local.txt
ammo_type: uri
header_http: '1.1'
headers:
- "[Host: 52.209.151.97]"
- "[Connection: close]"
- "[User-Agent: Tank]"
ammo_local.tex
/rest/products/search?q= api-1
/rest/products/dashboard api-2
/rest/products/basket api-2
api-1 - это тег для конкретного запроса или может быть выставлен у группы запросов
api-2 - это тег для конкретного запроса или может быть выставлен у группы запросов
теги пишутся в конце строки запроса и отделяются символом TAB - \t = </some/api/request>\t<api-tag> (конечно без скобок < и >)
uri
и uripost
допускают наличие заголовков внутри файлов с патронами https://yandextank.readthedocs.io/en/latest/tutorial.html#uri-style-uris-in-file
answ_XXXX.log
, возможно там будет больше информации. Из приведенных вами конфигов сложно понять причину
@afilatov
@ALEXLINCHEVSKY Про заголовки в файле с патронами не совсем верная информация: форматы
uri
иuripost
допускают наличие заголовков внутри файлов с патронами https://yandextank.readthedocs.io/en/latest/tutorial.html#uri-style-uris-in-file
по этой инструкции да - но при этом это не работает. а указанные заголовки и длины строк создаются в процессе формирования ленты-патронов в файле ammo.stpd иначе не верно формируется и длина строки и строка запроса как GET так и POST типов
Коллеги, а что у меня поломалось? Работало все ок, а потом стал получать вот такое.
Удалял и ставил танr заново. Не помогает
[jtank@TestingGround home]$ yandex-tank -v
Traceback (most recent call last):
File "/usr/local/bin/yandex-tank", line 11, in <module>
load_entry_point('yandextank==1.12.8.1', 'console_scripts', 'yandex-tank')()
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 476, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2700, in load_entry_point
return ep.load()
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2318, in load
return self.resolve()
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2324, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python3.6/site-packages/yandextank/core/__init__.py", line 4, in <module>
from .tankcore import TankCore # noqa:F401
File "/usr/local/lib/python3.6/site-packages/yandextank/core/tankcore.py", line 25, in <module>
from yandextank.plugins.DataUploader.client import LPRequisites
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/DataUploader/__init__.py", line 1, in <module>
from .plugin import Plugin # noqa:F401
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/DataUploader/plugin.py", line 23, in <module>
from ..Autostop import Plugin as AutostopPlugin
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/Autostop/__init__.py", line 1, in <module>
from .plugin import Plugin # noqa:F401
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/Autostop/plugin.py", line 8, in <module>
from ..Console import Plugin as ConsolePlugin
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/Console/__init__.py", line 1, in <module>
from .plugin import * # noqa:F401,F403
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/Console/plugin.py", line 7, in <module>
from .screen import Screen
File "/usr/local/lib/python3.6/site-packages/yandextank/plugins/Console/screen.py", line 1018
Unable to access to JMeter executable file or it does not exist: /usr/local/apache-jmeter-5.2.1/bin/jmeter
@nettorta да, путь сходится
Пробовал сейчас вот сюда установить:
/home/tank/apache-jmeter-5.2.1/bin/jmeter
Если таким образом запускать только JMeter, то этот путь работает и JMeter стартует тест:/home/tank/apache-jmeter-5.2.1/bin/jmeter -n -t ReloadTest.jmx -l result-1.jtl -e -o ./result-1
В load.yaml прописал:
phantom:
enabled: false
jmeter:
enabled: true
jmx: ReloadTest.jmx
buffered_seconds: 10
jmeter_path: /home/tank/apache-jmeter-5.2.1/bin/jmeter
jmeter_ver: 5.2
ext_log: all
overload:
enabled: true
package: yandextank.plugins.DataUploader
token_file: "token.txt"
При запуске получаю ошибку
06:49:54 [ERROR] Test interrupted:
<type 'exceptions.RuntimeError'>: Unable to access to JMeter executable file or it does not exist: /home/tank/apache-jmeter-5.2.1/bin/jmeter
@bahodir-annaev одним из вариантов может быть нехватка instances, т.е. одновременного кол-ва соединений. По дефолту в танке оно равно 1000
https://yandextank.readthedocs.io/en/latest/config_reference.html#id20