Jmeter-双数据类型的计数器

时间:2019-05-10 10:14:16

标签: java automation jmeter automated-tests

我正在尝试使付款交易自动化,其中我需要增加double数据类型的值。

我使用了计数器,但似乎无法读取带有十进制的增量值。我将以下设置设置为Counter:

  • 1.04的起始值
  • 0.01的增值

与“随机变量”相同,我的目标是至少生成一个随机的双精度或十进制值。

  • 输出格式00.00
  • 最小值1
  • 5的最大值

甚至以下设置也不起作用。

  • 输出格式00.00
  • 最小值1.00
  • 5.00的最大值

2 个答案:

答案 0 :(得分:0)

据我所知,JMeter不支持十进制计数器,因为它们是Long类型的。来自JMeter: Component reference: Counter

  

计数器使用长型存储值,因此范围是-2 ^ 63到2 ^ 63-1。

1。完全生成一个十进制数字

但是,在format描述下面看一下,它说DecimalFormat用于形成传递给自定义ex的字符串。 ${counterA}变量。请参见格式(强调并突出显示我的内容):

  

可选格式,例如000将格式化为001、002等。这将传递给DecimalFormat,因此可以使用任何有效格式。如果解释格式存在问题,则将其忽略。 [默认格式是使用Long.toString()生成的

此功能可以满足您的需求,并且可以在生成的值中添加前缀(see this SO question)或后缀。现在,它变成了纯Java的东西。考虑变量counter是用JMeter生成的Long

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

结论是在Counter生成表单中使用#,## Number格式参数。现在配置如下:

  • 最小值:104
  • 最大值:500
  • 增量值:1
  • 数字格式:#,##

2。小数分隔符.,

结果变为1,04,增量值为0.01。现在,本地化成为问题,因为某些欧洲国家/地区使用.作为小数部分的分隔符,而后半部分使用Locale给出的,并影响{{3 }}的行为。剩下的唯一事情就是使用其中一个预处理器DecimalFormat或为JMeter配置语言环境(我对此没有经验)。

3。性能很重要,那么CSV文件呢?

现在,您可能会问,使用此替代方法是否会对性能产生负面影响,以及最终结果是否会失真。如果用于集成测试而不测量性能和生成结果,我根本不会在乎。另一方面,当执行测试的性能发生时,更好的解决方案可能是从外部文件(例如CSV)加载那些预先生成的变量。在Replace a substring in a variable上了解更多信息。

答案 1 :(得分:0)

如果您希望使用JSR223预处理器生成随机数,然后将其进一步传递

enter image description here 使用$ {Random_Double}

获取