1.1.6 • Published 4 years ago

yandex-tank-ammo-generator v1.1.6

Weekly downloads
2
License
ISC
Repository
-
Last release
4 years ago

Генератор патронов для яндекс танка

Установка

  • у вас должен быть установлен nodejs и npm nodesource
#  Ubuntu
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
npm i -g yandex-tank-ammo-generator

Настройка танка

  • Пример конфигурации
phantom:
  address: ya.ru:443 
  ssl: true
  header_http: '1.1'
  ammofile: ./ammo.txt # ваш пак  патронов
  load_profile:
    load_type: rps # schedule load by defining requests per second
    schedule: line(20, 450, 1m) #const(150, 60)

Утилиты

(При создании файлов расширение будет установлено автоматически)

Генератор тестовых данных из ELASTIC(Graylog,ELK)

Парсит логи из эластика и подготавливает конфиг для генерации патронов

tank-gen-test-data --help
tank-gen-test-data -c ./config.json  -o ./my_json_conf

Генератор патронов из json

Из заранее подготовленого json генерирует патроны

tank-create-ammo --help
tank-create-ammo  -u Yandex-Tank-Dev -f ./my_json_conf.json -o  myfile

Генератор патронов из ELASTIC(Graylog,ELK)

Парсит логи эластика и сразу генерирует патроны (нет возможности посмотреть конфиг), что по сути обьединяет первые 2 утилиты

tank-gen-ammo--help 
tank-gen-ammo -c ./config.json  -o my_artillery -u Yandex-Tank-Dev

Примеры конфигурационных файлов

tank-gen-test-data и tank-gen-ammo

{
  "host": "хост в заголовках запросов",
  "index": "Индекс в Эластике",
  "elastic": {
    "uri": "http://elastic.ru:9200",
    "auth":"login:pass" <-- опционально
  },
  "limit": 15,
  "query": {
    "sort": {
      "field": "responseTime",
      "type": "DESC"
    }
  },
  "routes": [
    {
      "route": "/ecommerce/get",
      "method": "post"
    },
    {
      "route": "/catalog/data",
      "method": "get"
    }
  ]
}
  • tank-create-ammo *
{
  "name": "Мой Пак Патронов",
  "host": "i-dev.api.qq.com",
  "data": [
    {
      "method": "post",
      "tag": "qqq",
      "headers": { "Authorization": "Bearer 8f81c7fe-f5a1-4322-80fa-b54a6553bba9" },
      "body": { "filters": {}, "size": 24, "page": 1 },
      "path": "/ecommerce/goods/eshop/catalog"
    },
    { "method": "GET", "path": "/catalog/zhenshchinam/zhenskaya-obuv/?opt=all", "body": null }
  ]
}

Результат

  • Далее патроны можно скармливать танку*
583 POST_/ecommerce/goods/eshop/catalog 
POST /ecommerce/goods/eshop/catalog HTTP/1.1
Host: i-dev.api.test.abc
User-Agent: Yandex-Tank-Dev
Content-Type: application/json; charset=utf-8
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6ImEwYjhhNDAyLTdhNmQtNDdkZS05MWFlLWE2OTBhY2U4YzQ3YiIsImlzVGVtcCI6dHJ1ZSwiaWF0IjoxNTk1NjQ0OTgwLCJleHAiOjE1OTYyNDk3ODB9.mrLKgVWVA2_tg5a_21xDKvsrW7uk9aAyzD_rFfL8ujE
Content-Length: 187

{"cond":{"guids":["150","802","908"]},"sort":"popular","size":24,"page":1,"filters":{"price":{"min":399,"max":1587},"sizes":["28","29"],"deliveryType":"ALL","showRetailGroupsArray":true}}

233 POST_/ecommerce/goods/eshop/productsCard 
POST /ecommerce/goods/eshop/productsCard HTTP/1.1
Host: i-dev.api.test.abc
User-Agent: Yandex-Tank-Dev
Content-Type: application/json; charset=utf-8
Authorization: 
Content-Length: 46

{"articuls":["00906840"],"withTableSize":true}

233 POST_/ecommerce/goods/eshop/productsCard 
POST /ecommerce/goods/eshop/productsCard HTTP/1.1
Host: i-dev.api.test.abc
User-Agent: Yandex-Tank-Dev
Content-Type: application/json; charset=utf-8
Authorization: 
Content-Length: 46

{"articuls":["00906690"],"withTableSize":true}
1.1.6

4 years ago

1.1.5

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago