Jmeter - счетчик для двойного типа данных - PullRequest
2 голосов
/ 10 мая 2019

Я пытаюсь автоматизировать платежную транзакцию, в которой мне нужно увеличить значение типа данных в два раза.

Я использовал Счетчик, но, похоже, он не читает значение приращения с десятичной дробью. Я установил следующие настройки счетчика:

  • Начальное значение 1.04
  • Значение приращения 0.01

То же самое со случайной переменной, моя цель - по крайней мере генерировать случайное двойное или десятичное значение.

  • Выходной формат 00.00
  • Минимальное значение 1
  • Максимальное значение 5

или даже приведенные ниже настройки не работают.

  • Выходной формат 00.00
  • Минимальное значение 1.00
  • Максимальное значение 5.00

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Если вы хотите использовать препроцессор JSR223 для генерации случайных чисел, а затем передать его дальше

enter image description here Получить с помощью $ {Random_Double}

0 голосов
/ 10 мая 2019

Насколько мне известно, JMeter не поддерживает десятичные счетчики, поскольку они относятся к типу Long. Из JMeter: ссылка на компонент: Счетчик :

Счетчик использует long для хранения значения, поэтому диапазон составляет от -2 ^ 63 до 2 ^ 63-1.

1. Генерация десятичного числа вообще

Тем не менее, посмотрите немного ниже на format описание, в котором говорится, что DecimalFormat используется для формирования строки, передаваемой в пользовательский ex. ${counterA} переменная. См. формат (подчеркивает и выделяет мой):

Необязательный формат, например 000 будет форматироваться как 001, 002 и т. Д. Это передается в DecimalFormat, поэтому можно использовать любые допустимые форматы. Если при интерпретации формата возникает проблема, он игнорируется. [Формат по умолчанию генерируется с использованием Long.toString ()]

Эта функция может быть приспособлена к вашим потребностям и позволяет добавлять префиксы ( см. Этот вопрос SO ) или суффиксы к сгенерированному значению. Теперь это становится чистой вещью Java. Рассмотрим переменную counter, Long, сгенерированную с помощью JMeter:

Long counter = 104L;
String string = new DecimalFormat("#,##").format(counter);  // 1,04

Вывод заключается в использовании #,## параметра числового формата в форме генерации счетчика. Теперь конфигурация будет выглядеть так:

  • Минимальное значение: 104
  • Максимальное значение: 500
  • Значение приращения: 1
  • Числовой формат: #,##

2. Десятичные разделители . против ,

Результат становится 1,04 со значением приращения 0.01. Теперь локализация становится проблемой, поскольку некоторые европейские страны используют . в качестве разделителя десятичной части, а во второй половине используется ,, который задается Locale, и это влияет на Поведение DecimalFormat. Осталось только Заменить подстроку в переменной , используя один из препроцессоров, или сконфигурировать локаль для JMeter (у меня нет с этим опыта).

3. Производительность имеет значение, тогда как насчет CSV-файла?

Теперь вы можете спросить, не повлияет ли это на производительность при использовании этого обходного пути, и будут ли окончательные результаты искажены. Если бы я использовал для интеграционных тестов без измерения производительности и получения результатов, мне было бы все равно. С другой стороны, когда имеет место производительность выполнения тестов, лучшим решением может быть загрузка этих предварительно сгенерированных переменных из внешнего файла, такого как CSV. Узнайте больше на Конфигурация набора данных CSV .

...