我正在尝试使付款交易自动化,其中我需要增加double数据类型的值。
我使用了计数器,但似乎无法读取带有十进制的增量值。我将以下设置设置为Counter:
1.04
的起始值0.01
的增值与“随机变量”相同,我的目标是至少生成一个随机的双精度或十进制值。
00.00
1
5
的最大值甚至以下设置也不起作用。
00.00
1.00
5.00
的最大值答案 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)