Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 18 17:50
    Ezhvtumane commented #809
  • Mar 12 22:19
    imduffy15 opened #843
  • Feb 19 14:56
    afilatov commented #651
  • Feb 19 00:25
    shirkevich commented #651
  • Feb 17 16:27
    gpchelkin edited #842
  • Feb 17 15:08
    gpchelkin synchronize #842
  • Feb 14 13:24
    gpchelkin opened #842
  • Feb 10 20:49
    Sirozha1337 commented #841
  • Feb 10 20:43
    Sirozha1337 closed #771
  • Feb 10 20:43
    Sirozha1337 commented #771
  • Feb 07 14:47
    afilatov commented #771
  • Feb 07 10:22
    DotSpy edited #841
  • Feb 07 10:21
    DotSpy opened #841
  • Jan 24 13:53

    fomars on master

    rm binary. deprecated plugin version up Merge pull request #840 from tr… (compare)

  • Jan 24 13:53
    fomars closed #840
  • Jan 24 13:46
    trueival synchronize #840
  • Jan 24 13:26
    trueival opened #840
  • Jan 22 16:22
    szypulka synchronize #838
  • Jan 22 13:24

    fomars on develop

    Merge pull request #834 from ya… fix travis tests Merge pull request #837 from fo… and 2 more (compare)

  • Jan 22 13:24
    fomars closed #839
zaborovsky91
@zaborovsky91
Подскажите пожалуйста, я новичок в танке, нужна миним. конфигурация, которая поможет определить максимальное кол-во запросов, которое выдержит сервер при обращение к определенным 3 страницам, и хотя бы в кратце куда/ что смотреть на какие графики?
leha0794
@leha0794

Всем привет, может кто скинуть готовый-рабочий пример, хотя бы с одним запросом, без всяких мониторингов (хочу просто запустить и посмотреть, может пойму так, чем через туториал)
Что-то типа этого (пытался на 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

guard43ru
@guard43ru

Всем привет, yandex-tank не поддерживает HTTPS SNI?

пересобрал контейнер на ubuntu:bionic (OpenSSL 1.1.1), s_client подключается без проблем,
a у танка ошибка SSL error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (71 Protocol error)

guard43ru
@guard43ru
вобщем поменял phantom на jmeter и все заработало
Alex A Linch
@ALEXLINCHEVSKY

@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> (конечно без скобок < и >)

Andrey Filatov
@afilatov
@ALEXLINCHEVSKY Про заголовки в файле с патронами не совсем верная информация: форматы uri и uripost допускают наличие заголовков внутри файлов с патронами https://yandextank.readthedocs.io/en/latest/tutorial.html#uri-style-uris-in-file
@leha0794 По поводу ответов с кодами 502, 500, 404, 400 я бы посоветовал посмотреть на логи ответов в файле answ_XXXX.log, возможно там будет больше информации. Из приведенных вами конфигов сложно понять причину
Andrey Filatov
@afilatov
@guard43ru Если говорить про Yandex.Tank и phantom, то поддержка SNI там не очень. Если тестируете какой-то один хост, то есть хак с пересборкой phantom с указанием этого хоста (см. https://gist.github.com/nnugumanov/90578be2e6a229e56ae1#file-gistfile1-txt-L3-L6 и https://github.com/yandex-load/phantom/blob/master/pd/ssl/bq_conn_ssl.C#L112), но это не очень масштабируемое решение.
Alex A Linch
@ALEXLINCHEVSKY
по этой инструкции да - но при этом это не работает

@afilatov

@ALEXLINCHEVSKY Про заголовки в файле с патронами не совсем верная информация: форматы uri и uripost допускают наличие заголовков внутри файлов с патронами https://yandextank.readthedocs.io/en/latest/tutorial.html#uri-style-uris-in-file

по этой инструкции да - но при этом это не работает. а указанные заголовки и длины строк создаются в процессе формирования ленты-патронов в файле ammo.stpd иначе не верно формируется и длина строки и строка запроса как GET так и POST типов

я с этим бился более 2-х недель - и много чего перелопатил . возможно у меня устаревшая сборка. но та которой я пользуюсь работает именно так
Alex A Linch
@ALEXLINCHEVSKY
и тесты я запускаю у себя именно вот этой командой
adm@adm:~$ yandex-tank -c load.yaml ammo.txt
Leonid
@leoag_gitlab
Подскажите есть ли простой способ сгенировать общий отчет (не используя сервис overload) с временами ответа, ошибками ? Использую yandex+phantom или все делают свой парсер?
Kirill Amurskiy
@KirillAmurskiy
Добрый день, подскажите, а есть ли возможность в phantom ammo файлах использовать русские символы? (да и вообще любые не английские). В документации написано "utf-8 symbols only", русские символы, вроде как, вполне utf-8. Но при попытке скармливания танку запросов с русскими символами, он их не досылает до целевого сервиса, пишет bad request 400. В логах не нашел в чем дело. Если всю конфигурацию оставлять такой же, но использовать только английские символы, то запросы доходят.
belomore
@Tonsofattraction
Прям в урлах? попробуйте заэнкодить
Kirill Amurskiy
@KirillAmurskiy
@Tonsofattraction , спасибо, помогло!
MilyaushaV
@MilyaushaV
Добрый день, для одновременных get + post запросов какой ammo_type нужен? Согласно документации там только phantom подходит https://yandextank.readthedocs.io/en/latest/tutorial.html#request-style
Plombirius
@Plombirius

Коллеги, а что у меня поломалось? Работало все ок, а потом стал получать вот такое.
Удалял и ставил тан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

Vadim Yangunaev
@ninja-tester
Всем привет!
Подскажите, есть ли возможность стрелять из нескольких танков так, чтобы результаты сливались в один репорт оверлоада?
Если в качестве пушки использовать JMeter?
Vadim Yangunaev
@ninja-tester
Еще вопрос)
Возможно ли использовать JMeter на ВМ предоставляемой Яндекс Облаком? Кто-нибудь пробовал?
Я хочу запустить тест из Яндекс.Облака, использую готовую ВМ Яндекс.Танк (v1.11.2)
Доустановил на неё Java и JMeter, но при запуске теста происходит ошибка
Unable to access to JMeter executable file or it does not exist: /usr/local/apache-jmeter-5.2.1/bin/jmeter
Timur Torubarov
@nettorta
@ninja-tester можно. а куда вы JMeter установили? пути сходятся?
Renat Berezovsky
@BrRenat
Всем привет, возможно уже было в чате. Подскажите пожалуйста, последняя версия пандоры и яндекс танка совместимы?
0.3.0 pandora, 1.12.8 yandex tank
Я смог запустить http тест на 0.1.3 версии пандоры, но грпц сценарий скомпилированный на 3ей версии не работает
Vadim Yangunaev
@ninja-tester

@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
@bahodir-annaev
Всем привет. При нагрузке rps не превышает 300 запросов на самом деле schedule: line(400, 1000, 2m) выглядит так. Можете подсказать почему....
image.png
Grigoriy
@ligreen

@bahodir-annaev одним из вариантов может быть нехватка instances, т.е. одновременного кол-ва соединений. По дефолту в танке оно равно 1000

https://yandextank.readthedocs.io/en/latest/config_reference.html#id20

попробуйте поднять его до 10000 и повторить тест
bahodir-annaev
@bahodir-annaev
@ligreen пробовал не помог((
image.png
image.png
Anton
@c13

Подскажите по образу яндекс-танка с jmeter, он почему-то подвисает при остановке и ctrl+c не помогает

docker run     --rm     -v $(pwd):/var/loadtest     --net host     -it direvius/yandex-tank:jmeter-latest
No handlers could be found for logger "netort.resource"
15:12:27 [INFO] New test id 2020-03-17_15-12-27.791237
15:12:27 [INFO] Logging handler <logging.StreamHandler object at 0x7f65fabb9850> added
15:12:27 [INFO] Logging handler <logging.StreamHandler object at 0x7f65fab5da50> added
15:12:27 [INFO] Created a folder for the test. /var/loadtest/logs/2020-03-17_15-12-27.791237
15:12:27 [INFO] Configuring plugins...
15:12:27 [INFO] Loading plugins...
15:12:27 [INFO] Preparing test...
15:12:27 [INFO] Checking tank resources...
15:12:28 [INFO] Starting test...
15:12:28 [INFO] using verbose histogram
15:12:28 [INFO] Plugin <yandextank.plugins.JsonReport.plugin.Plugin object at 0x7f65fab36e10> required 0.000272 seconds to start
15:12:28 [INFO] Plugin <yandextank.plugins.Autostop.plugin.Plugin object at 0x7f65fab71f10> required 0.000024 seconds to start
                                                                                                                                     . ~~~~~~~~~~~~~~~~~~~~~~~~ JMeter Test | ~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                                                                     . ~~~~~~~~~~~~~~~~~~~~~~~~ JMeter Test / ~~~~~~~~~~~~~~~~~~~~~~~~
 Data delay: 4s, RPS:  46                                                                                                        ▅▇  .      Test Plan: modeus.jmx
                                                                                                                                     .       Duration: 0:00:11
 Percentiles (all/last 1m/last), ms:  . HTTP codes:                                                                                  . Active Threads: 2
 100.0% <  1,015.0  1,015.0    171.0  . 72 +45  96.00% : 200 OK                                                                      .    Responses/s: 46
  99.5% <  1,015.0  1,015.0    171.0  .  3  +1   4.00% : 500 Internal Server Error                                                   . 
  99.0% <  1,015.0  1,015.0    166.0  .                                                                                              . 
  95.0% <    177.0    177.0    103.0  . Net codes:                                                                                   . 
  90.0% <    109.0    109.0     81.5  . 72 +45  96.00% :  0  Success                                                                 . 
15:12:40 [INFO] Finishing test...
15:12:40 [INFO] Stopping load generator and aggregator

конфиг

phantom:
  enabled: false
jmeter:
  enabled: true
  package: yandextank.plugins.JMeter
  jmx: load.jmx
  buffered_seconds: 0
  ext_log: none
  variables:
    protocol: https
    host: example.org
    thread_rpm: 2
    loops: 20
console:
  enabled: true # enable console output
telegraf:
  enabled: false # let's disable telegraf monitoring for the first time
Alex A Linch
@ALEXLINCHEVSKY
насколько я понял ctrl+c не помогает - а лишь отключает отображение в консоли, а процесс теста - продолжается пока не завершится по расписанию в конфиге
Vadim Yangunaev
@ninja-tester

У меня тоже тест c JMeter зависает на этапе остановки генератора:

docker run --entrypoint /bin/bash -v ${PWD}:/var/loadtest -v ${HOME}/.ssh:/root/.ssh -it direvius/yandex-tank:jmeter-latest
Yandex.Tank Docker image
[tank]root@2fb9f3d88afa: /var/loadtest # yandex-tank

                                                                                                                                                                                                                .
20:24:44 [INFO] Finishing test...
20:24:44 [INFO] Stopping load generator and aggregator

При нажатии на ctrl-c появляется еще одна строчка, и более ничего
20:40:54 [WARNING] Interrupting

Renat Berezovsky
@BrRenat
Ребят а пандора жива вообще? Ей кто нибудь пользуется?
belomore
@Tonsofattraction
Жива, пользуются.
Rostislav Rudometov
@rostislaw9
Всем привет. Поскажите подробный мануал на русском, пж
Diman
@krabradosty

Привет. Использую танк с пандорой. Пандора из девелоп ветки. Танк latest из docker hub. В overload почему-то что-то не доходит, в частности информация об rps(https://overload.yandex.net/260950). Но нагрузка генерируется. Вижу по логам танка и мишеней.
Танк с фантомом работает исправно.
Конфиг пандоры:

pools:
  - id: Fabric Gun
    gun:
      type: fabric-gun
      ConnProfilePath: "./connectionProfile.json"
    ammo:
      type: fabric-chaincode
      source:
        type: file
        path: ./json.ammo
    result:
      type: phout
      destination: ./phout.log
    rps: {duration: 20s, type: line,  from: 1, to: 10}
    startup:
      type: once
      times: 10

log:
  level: info
monitoring:
  expvar:
    enabled: false
    port: 1234
  cpuprofile:
    enabled: false
  memprofile:
    enabled: false

Конфиг танка:

overload:
  enabled: true
  package: yandextank.plugins.DataUploader
  token_file: "token.txt"
phantom:
  enabled: false
pandora:
  package: yandextank.plugins.Pandora
  enabled: true
  pandora_cmd: ./pandora-fabric # Pandora executable path
  config_file: load.yaml # Pandora config path

Есть идеи в чем проблема? Спасибо

Renat Berezovsky
@BrRenat
есть проблема
monitoring:
expvar:
enabled: TRUE
port: 1234
@krabradosty понял да?)
Diman
@krabradosty
@BrRenat Понял да) Спасибо
Renat Berezovsky
@BrRenat
А пандора умеет создавать расписание запросов именно по запросам в секунду? А не по ответам.
Хочется стабильную нарастающую нагрузку, независимо от того как отвечает сервер.
С использованием инстансов неполучается такое провернуть. Типа делать 1 запрос в секунду для 1 инстанса и линейно их добавлять.
dmitry-sobol
@dmitry-sobol
Коллеги, привет! Пропала в overload вкладка Monitoring, хотя при попытке создать кастомную вкладку есть галочки от мониторингов, и данные там есть. Подскажите куда копать?
Diman
@krabradosty
@BrRenat Только дошли руки проверить. К сожалению, твой совет не помог. В оверлоуд по-прежнему не доходит информация об rps и threads (https://overload.yandex.net/262177). Еще идеи?)
Diman
@krabradosty

Я так понимаю expvar включает telegraf. Я им вообще никогда не пользовался. Разве он нужен для отправки rps в overload?

В логах нашел файл test_data.log, в котором видна моя проблема. Вот такие значения для теста в пандорой:

{"stats": {"metrics": {"instances": 0, "reqps": 0}, "ts": 1585316225}, "data": {"counted_rps": 9, ...}

И вот значения для теста с фантомом:

{"stats": {"metrics": {"instances": 1, "reqps": 4.0}, "ts": 1585067356}, "data": {"counted_rps": 4, ...}

Почему-то reqps в случае пандоры всего ноль, хотя counted_rps отличен от нуля.

Timur Torubarov
@nettorta
@krabradosty expvar не включает телеграф, он включает интерфейс пандоры, из которого можно добыть статистику о состоянии теста со стороны пушки
Diman
@krabradosty
@BrRenat @nettorta Получилось! Благодарю. В первый раз включение не помогло, потому что я изменил дефолтный порт.
KartingProfi
@KartingProfi
Всем привет! Нужно попробовать нагрузить сайт 500-1000 одновременными распределёнными запросами, можно по API. Задача выявить сервер справится с нагрузкой или нет. Через OverLoad это возможно или другой сервис поискать?