在Beanshell脚本中生成序列号

时间:2013-12-05 12:30:34

标签: java scripting jmeter beanshell

我是Beanshell脚本的新手。我正在尝试生成序列号,我尝试的脚本代码如下所示

文件名:sequence.bsh

string = new String();
Long[] n = new Long[] {1000};
for (i=0; i < n; i++){
    sequence = String.format("%08d", i);
    System.out.println(sequence);
}

当我尝试运行此代码时,我得到以下内容 的错误:

评估错误:来源文件:sequence.bsh:运营商:&#39;&#34;&lt;&#34;&#39;不合适的  objects:at Line:3:in file:sequence.bsh:;

上面的代码行在编译的java程序中正如预期的那样工作。我从00000001到00009999生成序列。

我需要知道如何纠正这个操作错误&amp;将结果分配给变量,以便我可以在JMeter测试用例中使用它。像vars.put("VARNAME", i.toString());

这样的东西

提前致谢。

4 个答案:

答案 0 :(得分:4)

Beanshell不是非常Java,我想你需要使用DecimalFormat类而不是String.format()方法。

import java.text.DecimalFormat;

DecimalFormat df = new DecimalFormat( "00000000" );

int  n = 1000;

for (int i=0;i<n;i++)
{
    String sequence = df.format(i);
    System.out.println(sequence);
}

有一个很好的Beanshell scripting guide可以帮助很多

答案 1 :(得分:0)

n是一个数组,你不应该使用&lt;用数组。但是你为什么要使用阵列呢?出于您发布的代码的目的,您不需要它。您可以尝试将其更改为Long。

string = new String();
Long n = 1000;
for (i=0; i < n; i++){
    sequence = String.format("%08d", i);
    System.out.println(i);
}

答案 2 :(得分:0)

更改

for (i=0; i < n; i++){

for (i=0; i < n.length; i++){

您正在尝试比较i类型的整数arrayLong

答案 3 :(得分:0)

此外,您可以使用每次调用时生成新数字的JMeter function: __counter,从1开始并逐渐增加1。