Перевод: English

Вступление

Bombard - это инструмент для стресс-тестирования вашего HTTP-сервера. С его помощью легко и быстро описывать логику формирования запросов.

Он разработан, чтобы быть простым, но мощным инструментом для нагрузочного функционального тестирования.

Благодаря возможности исплоьзовать фрагменты кода Python вы можете легко и быстро описать сложную логику для тестов.

Отчет о тестировании показывает, сколько запросов в секунду способен обслуживать ваш сервер и с какой задержкой.

Описание запросов

Минимально в запросе достаточно указать URL, но легко описать и JSON

supply:  # you can redefine variables from command line (--supply host=http://localhost/)
  host: https://jsonplaceholder.typicode.com/

getToken:
    url: "{host}auth"  # use {host} variable from supply to stay DRY
    method: POST
    body:  # below is JSON object for request body
        email: name@example.com
        password: admin
    extract:  # get token for next requests
        token:

В первом запросе вы можете получить токен, как в примере выше.

And use it in next requests like that:

postsList:
   url: "{host}posts"
   headers:
       Authorization: "Bearer {token}"  # we get {token} in 1st request
   script: |
       for post in resp[:3]:  # for 1st three posts from response
           # schedule getPost request (from ammo section)
           # and provide it with id we got from the response
           reload(ammo.getPost, id=post['id'])

В приложение втроены примеры. Список встроенных примеров

bombard --examples

Командная строка

Из командной строки вы можете изменить количество потоков, количество повторов, переопределить пемеренные, настроить вид отчета и так далее.

Также вы можете загрузить свой собственный файл bombard.yaml из любого понравившегося вам примера

bombard --init --example simple

отчет

Пример отчета для команды

bombard --example simple --repeat 2 --threshold 100
_images/simple_stdout.png

Исходный код

GitHub