Package: yapam
YapamYapam is a tool that aims to simplify the process of working withYandex TankEdit tool config, and it automatically creates ammo that you can use for your tests.
For now, it can create only Phantom-type ammo. If the app that you need to test is not stateless - probably you should
find another way.I have nothing to do with the Tank or Yandex itself but was impressed by the great work that they did.RemarkSooner or later for any project, questions arise:What load can it handle? 
 Which handlers are slow? 
 What exactly happens if you increase the number of application instances?Your first mind maybeI should use one of the stress testing tools!, but if you do not have colleagues who
could do this, then the task will fall on your shoulders. In my opinion, Yandex Tank is an easy and convenient way
to do this type of task (and as far as I know - it is free and opensource).
The right way is to read official docs, but...
Ok, if you want to do it ASAP here is a small Python script that will generate all you need to generate for tank shooting.InstallationYour Python version should be 3.5 or above. Simply install with Python package manager like pip:pip install yapamConfigurationConfiguration file should be JSON-type file with .json extension.Configuration options:LOG_DATE_FMT: date format for internal loggingLOG_FMT: internal logging log format (same as Python basic logging format)LOG_LVL: level of logging (same as Python basic logging levels)AMMO_FILE: a path to file where results should be savedREQUESTS: list of requests for your shootingExample:{
  "AMMO_FILE": "ammo",
  "LOG_DATE_FMT": "%H:%M:%S",
  "LOG_FMT": "%(asctime)s.%(msecs)d|%(levelname).1s|%(message)s",
  "LOG_LVL": "DEBUG",
  "REQUESTS": [
    {
      "host": "192.168.7.178",
      "url": "/api/auth",
      "port": 443,
      "method": "POST",
      "body": {"username": "vdiadmin", "password": "admin"}
    },
    {
      "host": "127.0.0.1",
      "port": 8888,
      "url":  "/auth",
      "method":  "POST",
      "body": {"username": "admin", "password": "admin"}
    }
  ]
}Usagecreate local runner, like app.py# -*- coding: utf-8 -*-

import argparse
import sys
from distutils.util import strtobool

from yapam.armory import Armory
from yapam.config import AmmoConfig


def parse_args():
    """Script arguments parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument('--config', default='config.json', type=str,
                        help='Path to configuration file, ex: config.json')
    parser.add_argument('--template', default=False, type=strtobool, nargs='?', const=True,
                        help='Create config template')
    return parser.parse_args()


def main():
    args = parse_args()

    if args.template:
        cfg = AmmoConfig()
        cfg.log.debug('Trying to create a template of configuration file.')
        cfg.create_template(args.config)
        cfg.log.debug('Exit.')
        sys.exit(0)

    try:
        user_config = AmmoConfig(args.config)
        user_config.log.debug(f'Configuration file loaded: {user_config.public_attrs()}')

        armory = Armory(user_config.requests, user_config.ammo_file, user_config.log)
        armory.generate_ammo()
    except (AssertionError, FileExistsError) as error_msg:
        user_config.log.critical(str(error_msg))
        sys.exit(1)

    sys.exit(0)


if __name__ == '__main__':
    main()create a template for your future configuration filepython app.py --templateedit configuration filerun your runnerpython app.pyorpython app.py --config 'my.json'use your ammo for tank shooting!I read everything, but still did not understand anything. Show me a super short way to run the whole thing?Try thisHere are some links to official docshttps://yandex.ru/dev/tank/https://yandextank.readthedocs.io/en/latest/https://gist.github.com/sameoldmadness/9abeef4c2125bc760ba2f09ee1150330https://www.youtube.com/watch?v=gws7L3EaeC0