Search code examples
yamlstress-testingyandex-tank

How to find out size of my POST request for yandex.tank ammo?


I create on my own ammo for Yandex.Tank:

POST /some/path HTTP/1.1
Host: some.host
Content-Length: 169
Connection: Close

{
  "some": "json"
}

As I get from documentation and some examples from the internet - the first line in ammo.txt file must be a size of my request.

I've tried to count this size on my own and used some online services (found by request text to byte or something) and get value 271. Tank throws this error:

<class 'yandextank.stepper.module_exceptions.AmmoFileError'>: Error while reading ammo file. Position: 4, header: '271', original exception: list index out of range

Also, I tried to count the size of example requests and get different values that were in those examples.

Seems I am doing it wrong.

There is load.yaml just for be sure:

phantom:
#  ssl: true
  address: some.host
#  port: '443'
  port: '80'

  load_profile:
    load_type: rps
    schedule: const(100, 5m)

  timeout: '60'
  instances: 100500

  ammo_type: uripost
  ammofile: ammo.txt

uploader:
  enabled: true
  package: yandextank.plugins.DataUploader
  api_address: https://overload.yandex.net
  token_file: token.txt
  job_name: "test"
  job_dsc: "test"

autostop:
  autostop:
    - net(110, 10, 5)
    - http(503, 10, 5)

telegraf:
  enabled: false

Question: how to correctly count the size of my ammo?


Solution

  • I just add marker after request size, e.g:

    yyy marker
    POST ...
    

    And tank returns me read xxx bytes instead of yyy. Found solution in some random presentation about Yandex.Tank. Hope this will help to someone in future.