Альтернативы JMeter для запросов POST с другими параметрами (должны работать без GUI)

Насколько мне известно, JMeter позволяет отправлять несколько POST-запросов с разными параметрами (например, { "value": "value1"}, {"value": "value2"}, ...). Однако мне удобнее использовать терминальный интерфейс, похожий на ab или siege. По сути, мне нужно загрузить тестовый сервер, имитирующий случай, когда некоторые запросы ранее не кэшировались.

Существуют ли альтернативы JMeter для Linux, которые могут использовать другие параметры для запроса POST?

ОБНОВЛЕНИЕ

Насколько я могу судить, JMeter требует создания плана тестирования (файл jmx) для запуска через командную строку. К сожалению, этот план тестирования должен быть построен с использованием графического интерфейса, чего я хочу избежать.

ОБНОВЛЕНИЕ 2

Я буду использовать JMeter, потому что он предлагает динамические параметры для запросов POST, а большинство альтернатив зависят от JMeter. Однако, если кто-нибудь знает автономную библиотеку, работающую исключительно из терминала (по аналогии с ab), сообщите мне.


person Robert Smith    schedule 15.08.2016    source источник


Ответы (2)


вы можете использовать JMeter в терминальном режиме, он называется режимом без графического интерфейса.

Для вариабилизации просто используйте набор данных CsV для загрузки переменных (например, varName) для каждого потока, а затем используйте ${varName}

Видеть :

Хороший отчет в конце:

Если вы не хотите использовать графический интерфейс даже для создания теста, посмотрите:

Это позволяет вам генерировать JMX из файла DSL.

Примеры здесь:

ДСЛ здесь:

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
  require 'ruby-jmeter'
  test do
    csv_data_set_config name:'MyCsv', filename: '/path to file', variableNames: 'myParam'
    threads count: 10 do
      visit name: 'Qwant Search', url: 'https://lite.qwant.com/?q=flood.io&t=web&p=${myParam}'
    end
  end.jmx(file: "path to your output plan")

Сохраните файл в ruby-jmeter-csv.rb. Затем вы можете создать план с помощью:

рубин рубин-jmeter-csv.rb

И запустить его в режиме без графического интерфейса.

person UBIK LOAD PACK    schedule 15.08.2016
comment
Да, я думаю, что это то, что я собираюсь сделать, но я не могу понять, какие аргументы командной строки нужно использовать для подачи набора данных csv и установки данной переменной ${varName}. У вас есть пример, который показывает, как его использовать? - person Robert Smith; 15.08.2016
comment
следуйте любому руководству, показывающему, как использовать его в режиме графического интерфейса, он будет работать нормально в режиме без графического интерфейса. Просто убедитесь, что путь к файлу cdv в порядке - person UBIK LOAD PACK; 15.08.2016
comment
Это не происходит в командной строке. CSV DataSet будет заполнять переменную (это одно из полей) из файла CSV (другое поле) при каждой итерации группы потоков. Gui или NOOn Gui работает одинаково - person UBIK LOAD PACK; 15.08.2016
comment
Проблема в том, что я не знаю, как запустить задачу без файла jmx, ранее сгенерированного графическим интерфейсом. - person Robert Smith; 16.08.2016
comment
из графического интерфейса нажмите на зеленый треугольник, чтобы запустить план и посмотреть, работает ли он, вот и все. Используйте дерево результатов просмотра, чтобы узнать, отправляете ли вы и получаете то, что хотите, поместите его в качестве дочернего элемента элемента «План тестирования». - person UBIK LOAD PACK; 16.08.2016
comment
Да. но я именно просил способ, который не задействует GUI. Вот почему я начал запрашивать альтернативы. Ранее я обновил свой вопрос, чтобы указать это ограничение. - person Robert Smith; 16.08.2016
comment
Вы имеете в виду, что не хотите использовать графический интерфейс даже для создания теста? В этом случае я обновил свой ответ - person UBIK LOAD PACK; 16.08.2016
comment
Спасибо. Да, это точно. Основываясь на вашем ответе, должен ли я предположить, что единственный способ отправить динамические параметры в запросе POST - это использовать JMeter (с оболочкой или без нее для запуска без графического интерфейса)? Я ожидал более простого способа сделать это. - person Robert Smith; 17.08.2016
comment
Я обновил свой ответ рабочим образцом ruby-jmeter. Но, очевидно, если вы вообще не можете использовать графический интерфейс (я не знаю почему, потому что вы должны иметь возможность даже в Linux), вы теряете важную функцию JMeter, поскольку это IDE для создания тестов. - person UBIK LOAD PACK; 17.08.2016
comment
Дело не в том, что я не могу использовать графический интерфейс, а в том, что есть ряд незначительных причин, по которым я предпочел бы его не использовать (например, старый ноутбук лучше ведет себя без графического интерфейса, генерация отчетов и манипуляции выполняются быстрее без графического интерфейса, Графические интерфейсы какие-то уродливые и т. д.) Однако, если нет других альтернатив, которые работают без графического интерфейса из коробки, я думаю, что буду использовать JMeter. - person Robert Smith; 18.08.2016
comment
вам нужен графический интерфейс только для тестовой сборки. Создание отчета может быть выполнено по запросу или в конце теста в режиме без графического интерфейса. Альтернативы см. в ответе Дмитрия, хотя я думаю, что jmeter по-прежнему лучший выбор на сегодняшний день :) Затем примите ответ, который вы найдете лучшим. - person UBIK LOAD PACK; 18.08.2016
comment
Да, JMeter необходим для многих из этих инструментов, поэтому я думаю, что буду придерживаться JMeter. - person Robert Smith; 18.08.2016

На самом деле JMeter GUI следует использовать только для разработки и отладки тестов, когда дело доходит до запуска нагрузочного теста - рекомендуется запускать JMeter в режим командной строки через Задача Ant или плагин Maven. Также есть еще пара «компьютерных» альтернатив, т.е.:

  • Скрипты JMeter .jmx в основном представляют собой XML-файлы, поэтому вы можете использовать свой любимый текстовый редактор для их создания или изменения.
  • Вы можете использовать JMeter API для создания и запуска тестов JMeter с использованием языка Java.

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

  • Grinder — вы можете писать скрипты в Джитон
  • Gatling — вы можете писать скрипты на DSL на основе Scala
  • Tsung — этот парень существует только для платформ на основе Linux и Unix, основанных на Erlang. Скрипты представляют собой XML-файлы.
  • Taurus – среда автоматизации, поддерживающая все вышеупомянутые инструменты (и некоторые другие), основанная на Python, файлы конфигурации имеют простые YAML.

См. Инструменты нагрузочного тестирования с открытым исходным кодом: Какой из них следует использовать? для получения дополнительной информации об указанных выше инструментах и ​​их сравнении с JMeter.

person Dmitri T    schedule 15.08.2016
comment
Спасибо. Мне нравится Taurus, но я думаю, что он использует JMeter в качестве бэкенда. Если это так, я предпочитаю использовать JMeter, но я все еще не уверен, как использовать файл csv для динамических параметров в запросе POST. В большинстве учебных пособий показано, как это сделать с помощью графического интерфейса. - person Robert Smith; 15.08.2016