我是Groovy的新手,现在在JMeter中将JS脚本重做为Groovy。在JMeter的JSR223 Groovy的以下代码中运行时,我遇到了持久错误No signature of method: static java.lang.String.ValueOf() is applicable for argument types: (java.lang.String) values: [1572245927833]
,该错误是带有return语句的行号的错误:
def clientTransactionIdGen() {
String timestamp = new Date().getTime().toString();
def rand = get_random(1000000, 9999999);
def user_id = vars.get("user_id");
return timestamp + String.valueOf(rand) + '^' + user_id;
}
1572245927833是以秒为单位的时间(因此为timestamp变量),并且没有与Return语句一致的ValueOf()转换。我什至将时间戳记类型从def
更改为String
,仍然错误指向return
语句。为什么在这样的地方出现这种错误?据我了解,有一种尝试将已经字符串对象转换为String。为什么?实际上,相同的错误是当我有足够长的时间戳记并在返回行中进行转换时,这对我也是一个难题:
def clientTransactionIdGen() {
def timestamp = new Date().getTime();
def rand = get_random(1000000, 9999999);
def user_id = vars.get("user_id");
return String.valueOf(timestamp) + String.valueOf(rand) + '^' + user_id;
}
已添加:每句正确的话,所有脚本中的所有ValueOf都更改为valueOf,仍然出现上述错误并说:No signature of method: static java.lang.String.ValueOf()
已添加:重新加载JMeter后解决了,显然某些内容仍在缓存中,并且不允许进行适当的调试。