我是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());
提前致谢。
答案 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
类型的整数array
和Long
。
答案 3 :(得分:0)
此外,您可以使用每次调用时生成新数字的JMeter function: __counter,从1开始并逐渐增加1。